Java SimpleDateFormat似乎无视月和日

时间:2012-03-09 18:53:36

标签: java

我有这段简单的代码:

SimpleDateFormat sqlFormatter = new SimpleDateFormat ("YYYY-MM-dd HH:mm:ss");
String temp = "2012-03-09 12:00:00";
System.out.println (temp);
Date last = sqlFormatter.parse (temp);
System.out.println (last);

我得到了这个输出:

2012-03-09 12:00:00
Sun Jan 01 12:00:00 EST 2012

我知道应该很简单,但我希望有人可以很快看到我所缺少的东西。

4 个答案:

答案 0 :(得分:6)

我认为你的模式有点偏差。我很惊讶你没有看到IllegalArgumentException。尝试使用以下小写y的模式,看看是否能解决您的问题:

SimpleDateFormat sqlFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

答案 1 :(得分:2)

此处更正的代码:

SimpleDateFormat sqlFormatter = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); String temp = "2012-03-09 12:00:00"; System.out.println(temp); Date last = sqlFormatter.parse(temp); System.out.println(last);

您应该SimpleDateFormat而不是SimpleDateFormatter多年来,您应该yyyy代替YYYY

答案 2 :(得分:1)

一旦我更正了格式字符串 - Y是不允许的,您需要y - (以及已经提到过的错字)它运行良好:

SimpleDateFormat sqlFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String temp = "2012-03-09 12:00:00";
System.out.println (temp);
Date last = sqlFormatter.parse (temp);
System.out.println (last);

>2012-03-09 12:00:00
>Fri Mar 09 12:00:00 EST 2012

答案 3 :(得分:1)

你需要使用'yyyy'而不是'YYYY'

这是输出

2012-03-09 12:00:00
Fri Mar 09 12:00:00 IST 2012

用于模式

yyyy-MM-dd HH:mm:ss