2011-11-04 84 views
1
SimpleDateFormat dateFormat = new SimpleDateFormat("mm/dd/yyyy"); 
Date date = dateFormat.parse("11/04/2011"); 
System.out.println(date); 
System.out.println(dateFormat.format(date)); 

Tue Jan 04 00:11:00 IST 2011 
11/04/2011 

当输出日期对象时,它显示为1月而不是11月。但是,格式化相同的日期对象时,它会正确显示十一月份。日期对象的奇怪行为

通过制作MM/dd/yyyy,它们都显示正确的结果。但是,如果mm/dd/yyyy很腥,那么mm/dd/yyyy是否会引发Unparseable日期异常?

+0

“毫米”分“MM”好几个月了。同样的“ss”表示秒,“SS”表示毫秒。 –

回答

5

常见错误:mm is the pattern for minutes。您想使用MM解析/打印月份。使用MM/dd/yyyy而不是mm/dd/yyyy

既然你解析11到日期的微细部,然后打印摆在首位的日期微细部的dateFormat.format(date)结果看起来正确。

+0

谢谢。我一直很愚蠢:) – Harshana

4

mm/dd/yyyy将其更改为MM/dd/yyyy

字母日期或时间组件演示例子

M Month in year Month July; Jul; 07 

m Minute in hour Number 30 

1

请注意,日期已过时。您应该改用Calendar类。

+1

我建议你使用Joda-Time。它需要忍受在java中使用日期的痛苦。 –