![](/img/trans.png)
[英]Joda Time - Convert a String into a DateTime with a particular timezone and in a particular format
[英]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.