繁体   English   中英

java.text.ParseException:无法解析的日期:“ 2014/02/20”

[英]java.text.ParseException: Unparseable date: “2014/02/20”

我可能会在解析日期时感到困惑。

以下是代码:

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD");
    Date d = format.parse("2014/02/20");
    System.out.println(d);

不仅您弄错了斜杠/破折号,而且您还使用DD (每年的日期)而不是dd (每月的日期)。 你要:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

与往常一样,请阅读文档以准确了解模式符号的含义-如果发现其行为异常 ,请非常仔细地对照数据检查模式。

建议:

  • 如果可能的话,使用Joda Time (Java-8之前的版本)或java.time (Java 8); java.util.Date/Calendar API太糟糕了
  • 明确指定语言环境
  • 明确指定时区

当前,您正在使用默认时区和语言环境。 尽管在这种情况下语言环境可能无关紧要(除非它是用来选择日历系统的;我记不得了),但我认为明确指定它更为清晰。 时区绝对重要; 如果您只想将其视为日期(无时间),则可能值得指定UTC-这样可以轻松地与其他任何对象互操作,并且可以在底层毫秒表示的明显位置获得日边界。

您的日期格式与您的字符串不匹配。

Date d = format.parse("2014-02-20");

要么

SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM