亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將字符串轉換為區域日期時間并更改時區

將字符串轉換為區域日期時間并更改時區

MMMHUHU 2022-09-28 09:40:00
我有這個字符串"Tue Apr 09 2019 12:59:51 GMT+0300"我想轉換為 .ZonedDateTimeDateTimeFormatter dtf = DateTimeFormatter.ofPattern("EEE MMM dd yyyy HH:mm:ss OOOO"); ZonedDateTime zdt = ZonedDateTime.parse(a, dtf);轉換為 后,我想將時區從更改為其他時區。ZonedDateTimeGMT+0300我的第一個問題是在.我得到:parseDateTimeParseException: Text 'Tue Apr 09 2019 12:59:51 GMT+0300' could not be parsed at index 25(在GMT + 0300,我認為這是不對的,但我不知道它還是什么)OOOO之后,我不知道如何更改時區。
查看完整描述

2 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

OOOO期望在分鐘字段之前有冒號,如文檔所述:

四個字母輸出完整形式,這是本地化的偏移文本,例如“GMT”,帶有2位數字的小時和分鐘字段,可選的第二個字段(如果不是零)和冒號(例如“GMT + 08:00”)。

可以通過編程方式在 last 之前插入 ,然后對其進行分析。:00


查看完整回答
反對 回復 2022-09-28
?
30秒到達戰場

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


查看完整回答
反對 回復 2022-09-28
  • 2 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號