有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

解析将历元字符串转换为Java日期

我从数据库中得到一个历元字符串,看起来像这样: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;
    }

共 (1) 个答案

  1. # 1 楼答案

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

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

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

    另一方面,如果您正在处理的项目可以处理额外的外部依赖项,请将日期/时间处理切换到joda library。在java.util(即DateCalendar)中的东西很快就会变得痛苦,并且容易出错