我有这个简单的例子:
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();
}
在控制台中,我得到 2014年10月18日 2013 年 12 月 29 日星期日 00:00:00 美国东部时间
任何解释为什么 sdf.parse 返回 2013 年 12 月 29 日而不是 2014 年 10 月 18 日
最佳答案
您的格式String
是YY
,应该是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
关于java - SimpleDateFormat 解析返回年终日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26445061/