【发布时间】:2017-04-04 10:11:31
【问题描述】:
Java 日期格式问题,当我尝试使用以下代码转换日期 04-Apr-17 时:
DateFormat informat= new SimpleDateFormat("dd-MMM-yy");
DateFormat outformat= new SimpleDateFormat("dd-MMM-yyyy");
System.out.println(outformat.format(informat.parse("04-Apr-17")));
我得到的是 0017 年 4 月 4 日而不是 2017 年 4 月 4 日。
我尝试了很多方法,但没有任何好的解决方案。
请帮忙,谢谢!
【问题讨论】:
-
对我来说效果很好
-
我也无法重现您观察到的行为。您的计算机(或者更确切地说是 JVM)的默认语言环境是什么?对于
04-Apr-7,我得到04-Apr-0007好吧,但是17 变成了2017。 -
由于 Giovanni Montenegro 尚未获得足够的评论声誉,here is the link to his demonstration that the code works fine。
-
在任何情况下,您所做的事情都是危险的,除非您非常确定要转换到过去或未来多远的日期。假设您将
05-Apr-37转换为05-Apr-1937,测试并确保一切正常。当你下周运行相同的程序时,它会转换为05-Apr-2037,一个巨大的错误。 -
了解该 PC 上的当前日期/时间以及 PC 的区域设置会很有趣:或者当您提供专用区域设置时也会发生这种情况:例如美国到 SimpleDateFormat ()
标签: java date simpledateformat