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

将历元字符串转换为Java日期,java,parsing,date,datetime,epoch,Java,Parsing,Date,Datetime,Epoch,我从数据库中得到一个历元字符串,看起来像这样:1391328000000 我很难将其转换为Java日期 我尝试了以下方法: private String buildDate(String dateString){ System.out.println("dateString " + dateString); DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); forma

我从数据库中得到一个历元字符串,看起来像这样:1391328000000

我很难将其转换为Java日期

我尝试了以下方法:

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;
    }

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

也就是说,将设置
格式化
的行更改为:

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

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

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

也就是说,将设置
格式化
的行更改为:

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

另外,如果您正在处理的项目可以处理额外的外部依赖项,请将日期/时间处理切换到。
java.util
(也就是说,
Date
Calendar
)中的内容很快就会变得痛苦,并且容易出错。

我认为您对
DateFormat
的考虑太多了。如果我只想获得一个
Date
实例,我将尝试以下方法:

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

我认为你对
DateFormat
想得太多了。如果我只想获得一个
Date
实例,我将尝试以下方法:

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

那么,这意味着代表什么日期?你真的需要把它作为一个字符串而不是一个数字吗?(我怀疑它实际上是从unix时代开始的毫秒。)那么它代表的是什么日期呢?你真的需要把它作为一个字符串而不是一个数字吗?(我怀疑它实际上是从unix时代开始的毫秒)您实际上不必使用SimpleDateFormat来确定日期。
java.text.Format#Format(objectobj)
的实现非常友好,可以将数字转换为日期。实际上,您不必使用SimpleDataFormat创建日期。
java.text.Format#Format(objectobj)
的实现非常友好,可以将数字转换为日期。