2014-10-18 64 views
2

我有这个简单的例子:SimpleDateFormat的解析回流端

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YY"); 
     System.out.println(sdf.format(new Date())); 
     try { 
      System.out.println( sdf.parse("10/18/14") ); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

在控制台中,我越来越 14年10月18日 太阳12月29日00:00:00 EST 2013

任何解释为什么sdf.parse回2013年12月29日10月18日代替2014

回答

4

您的格式StringYY,应该yy

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy"); 

SimpleDateFormat的Javadoc(这表示部分),

Letter Date or Time Component Presentation Examples 
G   Era designator   Text   AD 
y   Year     Year   1996; 96 
Y   Week year    Year   2009; 09 

目前你得到周一年

当我作出上述改变我得到(预期)

10/18/14 
Sat Oct 18 00:00:00 EDT 2014