【发布时间】:2011-05-28 18:00:05
【问题描述】:
区域名称:时区名称 ('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)
【问题讨论】:
-
我只想说“F#$% JodaTime!”好吧,不是真的;它救了我好几次。但我真的希望他们更新他们的文档。我花了一个小时试图弄清楚为什么这不起作用。
DateTimeFormat的 Javadoc 具有“z -- 时区文本 -- 太平洋标准时间;PST”。但是,稍后在同一页面上的几段,“区域名称:时区名称('z')无法解析。”走的路 JodaTime... 把它放在小字上。没什么大不了。我刚刚失去了 5 年的生命和大部分头发。 ;) -
@TheAwnryBear - 并且......希望......学到了一些教训:1)时区缩写是邪恶的,2)您需要正确阅读 javadoc :-)。跨度>
-
呵呵,斯蒂芬同意了。 :) 我倾向于吝啬,这在 95-99% 的时间里都有效……然后你会遇到像 Joda 文档这样的情况。 :P