2 回答

TA貢獻1828條經驗 獲得超6個贊
由于您的字符串包含偏移量并且沒有時區,那么您想要什么? 更合適。ZonedDateTimeOffsetDateTime
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(
"EEE MMM dd yyyy HH:mm:ss 'GMT'xx", Locale.ROOT);
String a = "Tue Apr 09 2019 12:59:51 GMT+0300";
System.out.println(OffsetDateTime.parse(a, dtf));
2019-04-09T12:59:51 + 03:00
時區是地球上的一個地方,包括該地點的UTC偏移量的歷史和已知的未來變化。時區通常以地區/城市格式給出,例如亞洲/仰光。
編輯
我使用區日期時間,因為我在我的應用程序中使用時區。
我不確定你到底是什么意思。也許您已經提前決定了您使用的時區?例如:
ZoneId zone = ZoneId.of("Europe/Zaporozhye");
OffsetDateTime odt = OffsetDateTime.parse(a, dtf);
ZonedDateTime zdt = odt.atZoneSameInstant(zone);
System.out.println(zdt);
2019-04-09T12:59:51+03:00[歐洲/扎波羅熱]
如果出于某種原因,您希望將GMT + 0300視為時區,即使它不是,我首先顯示的解析也適用于:ZonedDateTime
System.out.println(ZonedDateTime.parse(a, dtf));
2019-04-09T12:59:51 + 03:00
添加回答
舉報