반응형
Entity나 DTO를 만들지 않고 controller-service-mapper 작업을 할 때
Date Format을 보니 yyyy-MM-dd'T'HH:mm:ss 형식이었다.
private final Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
setDateFormat을 통하여 원하는 date 포맷의 값을 받아서 Date 객체로 변환할 수 있었다.
또는 아래와 같은 객체와 클래스를 만들어서 원하는 Format으로 지정하여도 된다.
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(Date.class, new GsonDateFormatAdapter());
public class GsonDateFormatAdapter implements JsonSerializer<Date>, JsonDeserializer<Date> {
private final DateFormat dateFormat;
public GsonDateFormatAdapter() {
dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.KOREA);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
}
@Override
public synchronized JsonElement serialize(Date date, Type type, JsonSerializationContext jsonSerializationContext) {
return new JsonPrimitive(dateFormat.format(date));
}
@Override
public synchronized Date deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) {
try {
return dateFormat.parse(jsonElement.getAsString());
} catch (ParseException e) {
throw new JsonParseException(e);
}
}
}
반응형
'Backend > Java (Spring)' 카테고리의 다른 글
[JAVA] 래퍼 클래스와 박싱, 언박싱 (0) | 2021.09.18 |
---|---|
[JAVA] Enum 클래스 선언 및 사용방법 (1) | 2021.09.18 |
[JAVA] 객체지향의 5가지 원칙 (SOLID 원칙) (0) | 2021.09.16 |
[Guide]스프링 네이밍 컨벤션(Coding convention) (0) | 2021.07.15 |
[JAVA] List를 Json으로 변환하기 (0) | 2021.06.01 |
최근댓글