SimpleDateFormat函数解析(String s)给出错误的日期

时间:2014-08-20 16:39:57

标签: java simpledateformat

作为输入,我必须格式化Date对象(例如,exDate = Fri Aug 01 00:00:00 EEST 2014)。在解析日期之后,我的日期错了。

            SimpleDateFormat sdf = new SimpleDateFormat(
                    "dd-MMM-YYYY hh.mm.ss.SSSSSSSSS aa", Locale.ENGLISH);
            String dateStart = sdf.format(exDate);
            Date dateF = sdf.parse(dateStart);

dateStart将等于

01-Aug-2014 12.00.00.000000000 AM 

和resut,dateF将等于

Sun Dec 29 00:00:00 EET 2013

因此,在解析带有日期的字符串之后,结果是错误的。 也许,有人知道问题的根源吗?或者另一种在另一个SimpleDateFormat格式化日期的方式?

1 个答案:

答案 0 :(得分:1)

问题是YYYY which means

 Y   Week year;

实际年份,您正在寻找的是yyyy

我真的建议您进入上面的链接,查看full list

您还应该将毫秒替换为.SSS,因为您无法获得更精确的数据。