SpringBoot 날짜 형식 변환 설정 전역 날짜 형식 변환기 의 실례 상세 설명
9425 단어 SpringBoot날짜 형식바꾸다
springboot 응용 프로그램 에서
@RestController
주 해 된 json 기본 직렬 화 에서 날짜 형식 은 기본적으로2020-12-03T15:12:26.000+00:00
형식의 표시 입 니 다.실제 디 스 플레이 에서 필요 한 디 스 플레이 형식 으로 변환 해 야 합 니 다.
1.1 방식 1:프로필 수정
프로필 설정
application.yml
:
spring:
#
jackson:
date-format: yyyy-MM-dd HH:mm:ss #
time-zone: GMT+8 # 8
설정 방식
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss #
spring.jackson.time-zone=GMT+8 # 8
[주의]여 기 는 시간 대 를 수정 해 야 합 니 다application.properties
데이터 베 이 스 는 기본 시간 대 는 그리니치 의 시간 입 니 다.설정 하지 않 으 면 실제 시간 보다 8 시간(베 이 징 시간)이 적 습 니 다.1.2 방식 2:javabean 실체 류 에 주석 추가
I
time-zone
주해4.567914.주 해 는 속성 이나 방법 에 사용 되 고 4.567914.유형 을 우리 가 필요 로 하 는 유형 으로 바 꿉 니 다.
// pattern
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
II@JsonFormat
주해날짜 형식 변환 이 필요 한 Date 속성 에 주 해 를 추가 합 니 다
@JsonFormat
// yyyy-MM-dd Date
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date birthday;
IIIDate
주해@Temporal 주 해 를 통 해 날짜 형식 변환 을 실현 합 니 다.예 를 들 어:
@Temporal 주석 파라미터
역할.
TemporalType.DATE
@Temporal(Temporal Type.DATE)은 yyy-MM-dd 형식의 날짜 형식 을 얻 을 수 있 습 니 다.
TemporalType.TIME
@Temporal(TemporalType.TIME)은 HH:MM:SS 형식의 시간 형식 을 얻 을 수 있 습 니 다.
TemporalType.TIMESTAMP
@Temporal(TemporalType.TIMESTAMP),yyy-MM-dd hh:MM:ss 형식의 날짜 시간 형식 을 얻 을 수 있 습 니 다.
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
2.SpringBoot 전역 날짜 형식 변환기 설정페이지 에서 받 은 String 과 json 형식의 날 짜 를 Date 형식 으로 설정 합 니 다.
2.1 String 형식 폼 전송 참 전 Date 변환기 설정
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
//Converter<S,T> S: , T: ,
@Component
public class GlobalFormDateConvert implements Converter<String, Date> {
// ( )
private static final List<String> paramList = new ArrayList<>();
//
private static final String param1 = "yyyy-MM";
private static final String param2 = "yyyy-MM-dd";
private static final String param3 = "yyyy-MM-dd HH:mm";
private static final String param4 = "yyyy-MM-dd HH:mm:ss";
// ,
static {
paramList.add(param1);
paramList.add(param2);
paramList.add(param3);
paramList.add(param4);
}
// , Date 1: 2:
public Date parseDate(String source, String format) {
System.out.println("parseDate ");
Date date = null;
try {
//
DateFormat dateFormat = new SimpleDateFormat(format);
date = dateFormat.parse(source);
} catch (Exception e) {
e.printStackTrace();
}
return date;
}
//convert ,s
@Override
public Date convert(String source) {
System.out.println("convert ");
if(StringUtils.isEmpty(source)){
return null;
}
source = source.trim(); //
DateFormat dateFormat = new SimpleDateFormat(param1);
//
if (source.matches("^\\d{4}-\\d{1,2}$")) {
return parseDate(source, paramList.get(0));
} else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")) {
return parseDate(source, paramList.get(1));
} else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")) {
return parseDate(source, paramList.get(2));
} else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")) {
return parseDate(source, paramList.get(3));
} else {
throw new IllegalArgumentException(" Date --> 【 】:" + source);
}
}
}
2.2 JSon 데이터 변환 Date 를 설정 하 는 전역 날짜 변환기
import java.text.FieldPosition;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.fasterxml.jackson.databind.util.StdDateFormat;
import org.springframework.util.StringUtils;
public class GlobalJsonDateConvert extends StdDateFormat {
// final,
public static final GlobalJsonDateConvert instance = new GlobalJsonDateConvert();
// parse(String)
@Override
public Date parse(String dateStr, ParsePosition pos) {
return getDate(dateStr, pos);
}
@Override
public Date parse(String dateStr) {
ParsePosition pos = new ParsePosition(0);
return getDate(dateStr, pos);
}
private Date getDate(String dateStr, ParsePosition pos) {
System.out.println("json ");
SimpleDateFormat sdf = null;
if (StringUtils.isEmpty(dateStr)) {
return null;
} else if (dateStr.matches("^\\d{4}-\\d{1,2}$")) {
sdf = new SimpleDateFormat("yyyy-MM");
return sdf.parse(dateStr, pos);
} else if (dateStr.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")) {
sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.parse(dateStr, pos);
} else if (dateStr.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")) {
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
return sdf.parse(dateStr, pos);
} else if (dateStr.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")) {
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.parse(dateStr, pos);
} else if (dateStr.length() == 23) {
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
return sdf.parse(dateStr, pos);
}
return super.parse(dateStr, pos);
}
@Override
public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(date, toAppendTo, fieldPosition);
}
@Override
public GlobalJsonDateConvert clone() {
return new GlobalJsonDateConvert();
}
}
2.3 설정 bean 을 Spring 관리 에 맡 기기
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.xgf.online_mall.convert.GlobalFormDateConvert;
import com.xgf.online_mall.convert.GlobalJsonDateConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ConversionServiceFactoryBean;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.converter.Converter;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.util.ArrayList;
import java.util.List;
import java.util.HashSet;
import java.util.Set;
@Configuration
public class WebConfig {
//JSON
@Bean
public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
//
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setDateFormat(GlobalJsonDateConvert.instance);
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper);
//
List<MediaType> list = new ArrayList<MediaType>();
list.add(MediaType.APPLICATION_JSON_UTF8);
mappingJackson2HttpMessageConverter.setSupportedMediaTypes(list);
return mappingJackson2HttpMessageConverter;
}
//
@Bean
@Autowired
public ConversionService getConversionService(GlobalFormDateConvert globalDateConvert){
ConversionServiceFactoryBean factoryBean = new ConversionServiceFactoryBean();
Set<Converter> converters = new HashSet<>();
converters.add(globalDateConvert);
factoryBean.setConverters(converters);
return factoryBean.getObject();
}
}
SpringBoot 날짜 형식 변환 설정 전역 날짜 형식 변환기 의 인 스 턴 스 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 SpringBoot 날짜 형식 변환 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.