将Java Date转换为Epoch会产生错误的结果

时间:2013-04-26 07:54:20

标签: java date format converter epoch

我正在使用代码将java Date对象转换为纪元:

        String str = "" + date;
        SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss.SSS");
        Date formateDate = df.parse(str);
        long epoch = formateDate.getTime();
        return epoch;

如果我使用值2013-04-26 08:34:55.705对其进行测试,那么它的长度为1359189295705,实际上是Sat, 26 Jan 2013 08:34:55 GMT,但是今天的星期五,为什么它会说2013年1月26日的星期六。

2 个答案:

答案 0 :(得分:5)

它使用 1月而非 4月。 1月26日确实是星期六。它给你错误的月份,因为你的日期格式是错误的:

yyyy-mm-dd HH:mm:ss.SSS

当您使用mm时,您当月使用MM。日期格式应为:

yyyy-MM-dd HH:mm:ss.SSS

您的格式没有在任何地方指定月份,因此可能只是默认为1月。

答案 1 :(得分:2)

月份格式错误,应该是yyyy-MM-dd,因此它会默认为第一个月。