将epoch String转换为Java日期

时间:2013-12-05 22:05:38

标签: java parsing date datetime epoch

我从我的数据库中获取了一个epoch字符串,如下所示:1391328000000

我很难将其转换为Java Date。

我尝试了以下内容:

private String buildDate(String dateString){
        System.out.println("dateString " + dateString);

        DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        format.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
        String formatted = format.format(Integer.parseInt(dateString));

        return formatted;
    }

2 个答案:

答案 0 :(得分:3)

您需要将其转换为java.util.Date对象,以便SimpleDateFormat处理它。此外,您引用的值需要被解析为long,因为它对于int来说太大了。

也就是说,将您设置为formatted的行更改为:

String formatted = format.format(new Date(Long.parseLong(dateString)));

顺便说一句,如果您正在处理的项目可以处理额外的外部依赖关系,请将日期/时间处理切换到joda libraryjava.util中的内容(即DateCalendar)很快就会变得痛苦并且容易出错。

答案 1 :(得分:3)

我认为你对DateFormat过分思考。如果我想简单地获得一个Date实例,我会尝试以下内容:

Date d = new Date(Long.parseLong(dateString));