【问题标题】:Java date does not parse day [duplicate]Java日期不解析日期[重复]
【发布时间】:2015-11-03 10:03:28
【问题描述】:

我有一个奇怪的问题,当我尝试使用 java SimpleDateFormat 解析此日期:Tue Nov 03 10:50:16 CET 2015 时,由于其中的“Tue”而引发异常。
我的代码是:

String date = "Tue Nov 03 10:50:16 CET 2015";
Date parsedDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy").parse(date);

抛出此异常:java.text.ParseException: Unparseable date: "Tue Nov 03 10:50:16 CET 2015"

我已经尝试过调试它,这就是归结为:

String date = "Tue";
Date parsedDate = new SimpleDateFormat("EEE").parse(date);

抛出相同类型的异常。 (我也用一个'E'试过)。我认为这真的很奇怪,因为文档告诉我应该这样使用它。来源:https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

我们非常欢迎解决方案!
谢谢,卢卡

更新:解析的重点是解析MANIFEST.getMainAttributes().getValue("Created-On");

【问题讨论】:

  • 您的语言环境是什么?文本的日期和月份表示取决于此。
  • 尝试将“en-us”区域设置传递给构造函数以锁定该部分。
  • 你可以试试@cheffe 这样的建议SimpleDateFormat("EEE", Locale.ENGLISH)。顺便说一句,我已经用你的 String 测试了你的代码,它工作正常。我系统中的语言英语
  • @cheffe 好点,我的日期和时间格式设置为荷兰语,而您刚刚解决了问题 :) 谢谢!

标签: java date parsing java-8


【解决方案1】:

感谢cheffe,我找到了解决方案:

Date parsedDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(date);

哪个有效! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多