Java:来自 unix 时间戳的日期java.time
我需要将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
应该如何做?
我需要将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
应该如何做?
对于 ,乘以 1000,因为 java 期望毫秒:1280512800
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)以来的指定毫秒数。
Java 8 引入了一个用于处理日期和时间的新 API:java.time 包。
使用java.time,您可以解析自UTC,1970-01-01T00:00Z中1970年第一个时刻的纪元参考以来的整个秒数。结果是即时
。
Instant instant = Instant.ofEpochSecond( timeStamp );
如果您需要与尚未针对 java.time 更新的旧代码进行互操作,请转换。调用添加到旧类的新转换方法。java.util.Date
Date date = Date.from( instant );