2015-06-02 63 views
-2

试图格式化使用的SimpleDateFormat APISimpleDateFormat的API显示错误的日期

String[] dates={"18-01-2015","9-02-2015","21-03-2015"}; 
for(String s:dates){ 
    SimpleDateFormat format=new SimpleDateFormat("DD-MM-yyyy"); 
    Date date=format.parse(s); 
    System.out.println(date); 
} 

输出几个日期:

Sun Jan 18 00:00:00 IST 2015 
Fri Jan 09 00:00:00 IST 2015 
Wed Jan 21 00:00:00 IST 2015 

你可以为它显示JAN代替FEB/MAR所有日期另行通知。

+3

它应该是'DD-MM-yyyy' –

+0

@Raj我简直不敢相信。 – MaxZoom

回答

6

当您构建SimpleDateFormat时,您想要dd而不是DDDD意味着“一年中的一天”,而不是“一个月中的某一天”。 时间SimpleDateFormat看起来像是做错了事情,你应该咨询documentation并真正仔细检查你的模式文本 - 特别是大写。

(还有其他的东西,可能会出错,当然 - 我已经得到了最常见的一个blog post

+0

冰雹Jon Skeet。 – Ungeheuer

+0

谢谢乔恩。这真的很有帮助 –