2

我的应用程序尝试解析美国/芝加哥时区的日期时遇到问题。我已经查看了一堆其他 ParseException 问题,并且我认为我已经了解了 Java 中日期解析的所有常见问题。以下代码适用于我遇到的所有其他日期/时间,但由于某种原因,美国/芝加哥时区的所有日期都无法解析。

我为 dateFormat 设置了语言环境,这并不重要。我检查了其他每个部分是否正常,我删除了不可见的控制字符,我重新输入了字符串以确保没有恶意字符被复制/粘贴,但每次都会抛出异常。

有什么想法吗?

dateFormat = new SimpleDateFormat("EEE MMM dd k:mm:ss zzz ");
dateString = "Wed May 02 15:45:47 America/Chicago ";

try {
    entry.setDateTaken(dateFormat.parse(dateString));
}  catch (java.text.ParseException e) { }

我不想走 Joda 路线是有原因的,这是一件很简单的事情,我不应该这样做。

4

1 回答 1

7

相信问题在于您使用的是奥尔森时区 ID,我认为不支持 SimpleDateFormat解析这些。当然使用你的代码我对“欧洲/伦敦”有同样的问题,所以它不是芝加哥特有的。你能举出任何具有这种时区标识符风格的例子

于 2012-05-18T19:56:19.700 回答