Dia*_*Dia 5 java timezone java-8
我有一个格式化程序的字符串模式
yyyy-MM-dd HH:mm:ss Z
Run Code Online (Sandbox Code Playgroud)
如何使用这种模式解析java.util.Date?
问题是此模式中的时区已经存在.
String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss Z";
DateTimeFormatter.ofPattern(DATE_TIME_FORMAT).format(date.toInstant());
Run Code Online (Sandbox Code Playgroud)
这显然给了
java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: YearOfEra
at java.time.Instant.getLong(Instant.java:603)
at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298)
Run Code Online (Sandbox Code Playgroud)
此处和其他地方的解决方案在格式字符串中没有时区,并提供以下解决方案:
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.ofInstant(dateD.toInstant(), ZoneId.systemDefault()))
Run Code Online (Sandbox Code Playgroud)
我可以以某种方式解析它吗?
支持的字段是:
- NANO_OF_SECOND
- MICRO_OF_SECOND
- MILLI_OF_SECOND
- INSTANT_SECONDS
您可以使用ZonedDateTime:
ZonedDateTime zdt = date.toInstant().atZone(ZoneOffset.UTC);
String format = DateTimeFormatter.ofPattern(DATE_TIME_FORMAT).format(zdt);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1317 次 |
| 最近记录: |