簡體   English   中英

Joda:將字符串解析為DateTime並使用奇怪的時區格式

[英]Joda: parse string as DateTime with weird timezone format

是否有有效的joda DateTimeFormat用於日期字符串,如下所示:

2018年7月23日星期一07:08:26 +0300 GMT

我努力了:

DateTimeFormatter FMT1 = DateTimeFormat.forPattern("E, d MMM yyyy HH:mm:ss Z");
DateTimeFormatter FMT2 = DateTimeFormat.forPattern("E, d MMM yyyy HH:mm:ss z");
DateTimeFormatter FMT3 = DateTimeFormat.forPattern("E, d MMM yyyy HH:mm:ss z Z");

但這些都不起作用。 我在這里看看https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html ,我無法找出一種無需更改字符串即可解析該日期的方法本身第一。 有辦法嗎?

我認為+0300是真實的偏移量,而GMT只是說+0300是相對於GMT的。 Joda-Time支持用撇號來分隔不應解釋的常量文本:

    DateTimeFormatter formatter = DateTimeFormat.forPattern("E, d MMM yyyy HH:mm:ss Z 'GMT'");

    DateTime dt = DateTime.parse("Mon, 23 Jul 2018 07:08:26 +0300 GMT", formatter);
    System.out.println(dt);

我在歐洲/哥本哈根時區的計算機上的輸出:

2018-07-23T06:08:26.000 + 02:00

順便說一句,使用小寫和大寫z的想法還不錯。 如果將它們按相反的順序放置,它會起作用:

    DateTimeFormatter formatter = DateTimeFormat.forPattern("E, d MMM yyyy HH:mm:ss Z z");

2018-07-23T04:08:26.000Z

我更喜歡撇號。 讀者很難知道Z z期望。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM