2011-10-06 95 views
2

我真的和SimpleDateFormat對象混淆。下面是代碼:DTG格式的SimpleDateFormat解析

SimpleDateFormat formatter = new SimpleDateFormat("DDHHmm MMM yy", Locale.ENGLISH); 

String dateString = "312230 MAR 10"; 
try 
{ 
    Date date = (Date)formatter.parse(dateString); 
    System.out.println("Original string: " + dateString); 
    System.out.println("Parsed date : " + date.toString()); 
} 
catch (ParseException e) 
{ 
    System.out.println("ERROR: could not parse date in string \"" + 
       dateString + "\""); 
} 

,這是輸出:

Original string: 312230 MAR 10 
Parsed date : Sun Jan 31 22:30:00 EST 2010 

我真的希望可以將輸出爲

Parsed date : Wed Mar 31 22:30:00 EST 2010 

可有人請指出我在做什麼錯?它將深深感激。我正在使用java 1.6_27。

回答

2

變化由SimpleDateFormat的模式 「ddHHmm MMM YY」 上大寫返回預期的輸出

Original string: 312230 MAR 10 
Parsed date : Wed Mar 31 22:30:00 CEST 2010 

DD意味着一年的日子。在你的榜樣第31天是在一月,怎麼你的輸出,而不是在三月

+0

我知道它必須是愚蠢的東西。非常感謝您的迴應。 – cissmjg

0

在SimpleDateFormat的:

d代表year.For示例 - 31 DD的值的日會給你31從1月1日起的一天。因此,從1月1日開始的一年中的第31天將爲1月31日。

d代表月中的日期。例如,如果31給出的值爲dd,MMM爲MAR ,那麼它將在5月31日。

更多在SimpledateFormat