Java java.text.ParseException Invalid time zone indicator
1. 오류 메시지
String 형태의 DateTime을 DB에 입력하기 위해 Timestamp 형으로 변환시 생기는 오류이다.
1
gson java.text.ParseException Invalid time zone indicator '0'
2. 해결방법
밀리세컨드 형태의 DateTime이기 때문에 Gson의 설정이 필요하다.
- Json
1
2
3
{
"dateTime": "1684888240164"
}
- Example.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import com.example.webclient.dto.ExampleDto;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import java.lang.reflect.Type;
import java.util.Date;
public class Example {
final Gson builder = new GsonBuilder().registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
public Date deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext context) throws JsonParseException {
return new Date(jsonElement.getAsJsonPrimitive().getAsLong());
}
}).create();
public void dateExample2(String json) {
ExampleDto exampleDto = builder.fromJson(json, ExampleDto.class);
}
}
참고:
2023년 05월 24일 09시 30분 50초
를 날짜와 시간을 모두 붙인20230524093050
은 밀리세컨드 형태의 데이터이기 때문에 Gson을 사용하여 Timestamp로 변환하면 잘못된 날짜와 시간이 나온다.
[출처 및 참고]
This post is licensed under CC BY 4.0 by the author.