区域名称:无法解析时区名称('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)
答案 0 :(得分:14)
我认为原因是'z'时区名称是传统的(非标准化)和含糊不清的;即根据您的原籍国,它们意味着不同的东西。例如,“PST”可以是“太平洋标准时间”或“巴基斯坦标准时间”。
如果您有兴趣,this site会列出大量时区名称。发现存在歧义的案例并不难。
答案 1 :(得分:5)
可能是因为某些时区缩写不明确且解析器无法知道哪个时区。
当然,在与Joda合作一段时间之后,你可能会发现这是一个微小的奇怪的嘀嗒声和缺失的功能。
答案 2 :(得分:3)
缩短的时区确实含糊不清,如DateTimeZone javadoc所述,Joda更进一步取消对它们的支持: