将Unix时间转换为可读的DateTime

时间:2015-02-12 15:59:45

标签: java datetime unix-timestamp

我想将Unix时间戳转换为可读的DateTime。 当值为1423525935时,我得到“1970年1月17日01:25”而不是“2015年2月9日23:52:15”

日Thnx

我的剧本

    SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy hh:mm ");
    String date1 = sdf.format(properties.get("time"));
    System.out.println(date1);
    System.out.println(properties.get("time"));

我的输出是

1423525935
January 17, 1970 01:25 
1423525976
January 17, 1970 01:25 
1423526012
January 17, 1970 01:25 
1423526026
January 17, 1970 01:25 
1423526047
January 17, 1970 01:25 
1423526172
January 17, 1970 01:25 

2 个答案:

答案 0 :(得分:1)

您似乎使用的是基于秒的Unix Epoch值,而SimpleDateFormat需要一段时间(以毫秒为单位)。因此,您必须将当前Long值乘以1000才能获得正确的日期。看看是否有帮助。

答案 1 :(得分:0)

SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy hh:mm ");
int time = Integer.parseInt(properties.get("time")); //if time property is not an int
Long l = time * 1000L;
String date1 = sdf.format(l);
System.out.println(date1);

这会输出February 9, 2015 05:52

正如伊丽莎白的回答提到你使用的是基于秒的纪元时间,我通过将1000乘以它来转换为毫秒秒。