在将UTC日期时间解析为EST当地时间时获得以下异常。
例外:
Stacktrace:] with root cause
java.text.ParseException: Unparseable date: "2016-09-09T03:00:29Z"
at java.text.DateFormat.parse(DateFormat.java:357)
at com.study.crud.util.GenericUtils.convertUTCDateToEST(GenericUtils.java:55)
GenericUtils.java
public static String convertUTCDateToEST(String utcDate) throws ParseException {
SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
inFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date aDate = inFormat.parse(utcDate);
DateFormat outFormat = new SimpleDateFormat("yyyy-MM-dd HH:MI:SS");
outFormat.setTimeZone(TimeZone.getTimeZone("EST"));
String estDate = outFormat.format(aDate);
return estDate;
}
在这里发现了一些类似的东西java.text.ParseException: Unparseable date "yyyy-MM-dd'T'HH:mm:ss.SSSZ" - SimpleDateFormat并尝试了那里提出的解决方案,但没有用。
答案 0 :(得分:1)
输入格式有错误。您已指定毫秒作为格式.SSS的输入,然后指定区域Z.
但是你没有通过毫秒的选择。以下格式适用
SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
答案 1 :(得分:0)
这是因为输入中没有millisecond
部分时间:
"2016-09-09T03:00:29Z"
^ unmatched place
您可以通过添加缺失的部分(2016-09-09T03:00:29.000Z
)来修改输入,也可以相应地更改格式模式(yyyy-MM-dd'T'HH:mm:ss'Z'
)。
此外,输出格式中存在拼写错误(时间的一小部分):
" yyyy-MM-dd HH:MI:SS"
应将其替换为yyyy-MM-dd HH:mm:ss
。