2011-10-06 138 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