Java:来自unix时间戳的日期

我需要将一个unix时间戳转换为一个日期对象。
我试过这个:

java.util.Date time = new java.util.Date(timeStamp);

时间戳值是: 1280512800

日期应该是“2010/07/30 - 22:30:00”(因为我是通过PHP获得的),但是我得到的是Thu Jan 15 23:11:56 IRST 1970

应该怎么做?


对于1280512800 ,乘以1000,因为java期望毫秒:

java.util.Date time=new java.util.Date((long)timeStamp*1000);

如果你已经有了毫秒,那么只需要new java.util.Date((long)timeStamp);

从文档:

分配Date对象并初始化它以表示自标准基准时间(即“时代”,即1970年1月1日00:00:00 GMT)起指定的毫秒数。


这是正确的方法:

Date date = new Date ();
date.setTime((long)unix_time*1000);

java.time

Java 8引入了一个用于处理日期和时间的新API:java.time包。

使用java.time可以使用:

Date date = Date.from( Instant.ofEpochSecond( timeStamp ) );

Instant代表Java 8中的时间戳。使用静态Date.from()方法,您可以将Instant转换为java.util.Date实例。

链接地址: http://www.djcxy.com/p/6291.html

上一篇: Java: Date from unix timestamp

下一篇: Java Hashmap: How to get key from value?