【问题标题】:Convert from String to Date throws Unparseable date exception [duplicate]从字符串转换为日期会引发不可解析的日期异常[重复]
【发布时间】:2013-11-12 22:45:43
【问题描述】:

我想将日期转换为字符串,但我遇到了一些问题。我的代码是这样的:

SimpleDateFormat formato = new SimpleDateFormat(
            "EEE MMM dd HH:mm:ss z yyyy");

    String hacer = "Fri Nov 01 10:30:02 PDT 2013";
    Date test = null;
    test = formato.parse( hacer);
    System.out.println("prueba===>" + test);

但是没有什么是错的,eclipse向我显示了这个错误:

Unparseable date: "Fri Nov 01 10:30:02 PDT 2013"
at java.text.DateFormat.parse(Unknown Source)

有什么帮助吗?

【问题讨论】:

  • 我看不出你的代码有什么问题。可能你修改后没有重新编译代码。
  • 也为我工作。 prueba===>2013 年 11 月 1 日星期五 13:30:02 EDT

标签: java datetime time datetime-format


【解决方案1】:

可能您的默认语言环境不支持 MMM 中的英语月份。例如在波兰,MMM 支持“styczeń”,但不支持“Jan”或“January”

要更改这一点,在SimpleDateFormat 中,您需要设置支持以英文书写的月份的语言环境,例如

new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);

【讨论】:

  • 谢谢,添加Locale.ENGLISH 有效,有什么区别?为什么在放之前不工作?
  • @Chris:它影响如何解析日期。您可以使用System.out.println(Locale.getDefault()); 检查哪个是您的默认设置。
  • 可能您的默认语言环境不支持MMM 中的英文月份。例如,我住在波兰,MMM 支持"styczeń",但不支持"Jan""January"
  • 实际上我尝试使用: System.out.println(Locale.getDefault());我的默认语言环境不支持英语,但现在可以使用 Locale.ENGLISH
  • 通常不建议设置全局语言环境;它与用户的系统配置作斗争。如果您确实需要在特定语言环境中进行解析,请显式编写。
猜你喜欢
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
  • 2014-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
相关资源
最近更新 更多