[英]Why does org.joda.time.DateTimeFormatter not parse custom date time with millis correctly?
[英]Why Joda DateTimeFormatter cannot parse timezone names ('z')
區域名稱:無法解析時區名稱('z')。
因此時區解析如下:
System.out.println(new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").parse("Fri Nov 11 12:13:14 JST 2010"));
在Joda無法做到:
DateTimeFormatter dtf = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss z yyyy");
System.out.println(dtf.parseDateTime("Fri Nov 11 12:13:14 JST 2010"));
//Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "Fri Nov 11 12:13:14 JST 2010" is malformed at "JST 2010"
//at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:673)
我認為原因是'z'時區名稱是傳統的(不標准化)和含糊不清的; 即根據您的原籍國,它們意味着不同的東西。 例如,“PST”可以是“太平洋標准時間”或“巴基斯坦標准時間”。
如果您有興趣, 這個網站有一個包含大量時區名稱的列表。 發現存在歧義的案例並不困難。
可能是因為某些時區縮寫是不明確的,並且解析器無法知道哪個時區是什么意思。
它當然也可能是你在與Joda合作一段時間后發現的微小,奇怪的嘀嗒聲和缺失的功能之一。
縮短的時區確實含糊不清,Joda進一步刪除了對它們的支持,如DateTimeZone javadoc中所述 :
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.