【问题标题】:Convert String to Date with usage of SimpleDateFormat使用 SimpleDateFormat 将字符串转换为日期
【发布时间】:2013-01-08 14:46:39
【问题描述】:

我想将String 转换为Date,但出现以下异常:

java.text.ParseException: Unparseable date: "Thu Jan 27 14:47:58 CET 2011"
    at java.text.DateFormat.parse(DateFormat.java:335)
    at de.datev.boxi.Main.run(Main.java:36)
    at com.crystaldecisions.sdk.plugin.desktop.program.internal.ProgramWrapper.main(ProgramWrapper.java:174)

我应该使用哪些参数将字符串格式化为日期?

我的程序如下:

try {
    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
    Date d1 = sdf.parse("Thu Jan 27 14:47:58 CET 2011");
    System.out.println(d1);
} catch (ParseException ex) {
    ex.printStackTrace();
}

【问题讨论】:

    标签: java string date


    【解决方案1】:

    尝试:

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

    【讨论】:

    • 感谢您的解决方案!
    【解决方案2】:

    在 Java 中解析这种“复杂”的时间戳总是很棘手。我有同样的经历。

    Java 在解析您的时区时遇到问题。

    或者更可能是默认语言环境与您的时间字符串不匹配,我建议您将英语语言环境添加到您的通话中:

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

    我总是建议添加此参数,因为根据执行环境,您的应用程序可以在某些机器上运行而在其他机器上失败 - 取决于默认语言环境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 2017-06-05
      • 2018-11-03
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多