kei*_*iki 22 java parsing timestamp java-8
我正在尝试将String转换为Instant.你能帮我吗?
我得到以下异常:
引起:java.time.temporal.UnsupportedTemporalTypeException:不支持的字段:java.time.Instant.from上的java.time.format.Parsed.getLong(Parsed.java:203)中的InstantSeconds(Instant.java:373)
我的代码基本上看起来像这样
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String timestamp = "2016-02-16 11:00:02";
TemporalAccessor temporalAccessor = formatter.parse(timestamp);
Instant result = Instant.from(temporalAccessor);
Run Code Online (Sandbox Code Playgroud)
我使用的是Java 8 Update 72.
Mic*_*man 24
以下是如何使用默认时区获取Instant.您的String无法直接解析为Instant,因为缺少时区.因此,您始终可以获得默认值
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String timestamp = "2016-02-16 11:00:02";
TemporalAccessor temporalAccessor = formatter.parse(timestamp);
LocalDateTime localDateTime = LocalDateTime.from(temporalAccessor);
ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, ZoneId.systemDefault());
Instant result = Instant.from(zonedDateTime);
Run Code Online (Sandbox Code Playgroud)
jde*_*dex 15
一种更简单的方法是在声明格式化程序对象时将默认时区添加到格式化程序对象中
final DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("yyyy-MM-dd HH:mm:ss")
.withZone(ZoneId.systemDefault());
Instant result = Instant.from(formatter.parse(timestamp));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24559 次 |
| 最近记录: |