java - 将字符串时间戳解析为即时抛出不受支持的字段 : InstantSeconds

标签 java parsing timestamp java-8

我正在尝试将字符串转换为 Instant。你能帮帮我吗?

我得到以下异常:

Caused by: java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: InstantSeconds at java.time.format.Parsed.getLong(Parsed.java:203) at java.time.Instant.from(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);

我正在使用 Java 8 更新 72。

最佳答案

更简单的方法是在声明时将默认时区添加到格式化程序对象

final DateTimeFormatter formatter = DateTimeFormatter
                                    .ofPattern("yyyy-MM-dd HH:mm:ss")
                                    .withZone(ZoneId.systemDefault());
Instant result = Instant.from(formatter.parse(timestamp));

关于java - 将字符串时间戳解析为即时抛出不受支持的字段 : InstantSeconds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35610597/

相关文章:

java - 如何在@BeforeSuite中使用testNG @Parameters读取资源文件

java - 在 Java 中拆分命令行

ruby-on-rails - 带时间戳的redis + Rails

python - 如何在 python 中将日期时间转换为unix时间戳

java - 在 Java 中更改字体大小

java - 使用 SimpleDateFormat 解析时间字符串

java - 有没有使用 GWT 解析 HTML 的工具

具有一个变量的数学表达式的 C 解析器并将其保存到函数中

java - 奇怪的解析问题

sql - PostgreSQL 支持的最早时间戳