![](/img/trans.png)
[英]How to convert java.sql.Timestamp to java.time.OffsetDateTime?
[英]Converting ISO 8601 timestamp String to java.time.OffsetDateTime
假設我有一個 ISO 8601 格式的日期: "2017-01-10T14:55:32+01:00"
。
如何將其轉換為OffsetDateTime ?
我在這里沒有找到任何答案。 我嘗試了以下操作:
public OffsetDateTime stringToOffsetDateTime() {
return OffsetDateTime.from(Instant.parse("2019-12-12T10:39:40-02:00"));
}
但它拋出DateTimeParseException
。
最短的答案是:
OffsetDateTime.parse("2017-01-10T14:55+01:00")
它默認識別 ISO 8601 格式(使用 DateTimeFormatter.ISO_DATE_TIME)。
如果需要,您可以通過這種方式使用其他格式化程序:
OffsetDateTime.parse(iso8601String, DateTimeFormatter.ISO_OFFSET_DATE);
所有格式化程序都可以在這里瀏覽: https ://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
OP 的嘗試失敗,因為使用了 Instant 的格式化程序。 這自然失敗了,因為 Instant 總是在 UTC 中,所以即使可能你會丟失時區信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.