【发布时间】:2017-11-24 17:17:55
【问题描述】:
我正在使用SimpleDateFormat 类设置模式并使用parse 方法将String 解析为Date 对象。
但是当我打印Date对象而不使用方法format()时:
SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd");
Date dat1 = format.parse("2017-11-01");
System.out.println(dat1);
我的结果是:
1990 年 12 月 30 日星期日 00:00:00 UTC
【问题讨论】:
-
我无法重现 - 我得到了 2017 年 1 月 2 日。但从根本上说,你想要
yyyy而不是YYYY。当您遇到SimpleDateFormat的问题时,首先 要做的就是根据文档仔细检查您的格式字符串。 (请注意,问题不在于生成的Date的格式 - 在于解析。) -
好的解决方案是放弃长期过时且臭名昭著的麻烦
SimpleDateFormat类并使用java.time:LocalDate.parse("2017-11-01")会给你你所期望的。短视的解决方案是在格式模式字符串中使用小写yyyy而不是大写。 -
谢谢我的错误解决了。我会尝试使用 java.time。
标签: java date simpledateformat