Unix纪录时间到Java Date对象我有一个包含UNIX Epoch时间的字符串,我需要将其转换为Java Date对象。String date = "1081157732";DateFormat df = new SimpleDateFormat(""); // This linetry {
Date expiry = df.parse(date);
} catch (ParseException ex) {
ex.getStackTrace();}标记的线是我遇到麻烦的地方。我无法弄清楚SimpleDateFormat()的参数应该是什么,或者即使我应该使用SimpleDateFormat()。
3 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
java.time
使用java.time
Java 8及更高版本中内置的框架。
import java.time.LocalDateTime;import java.time.Instant;import java.time.ZoneId;long epoch = Long.parseLong("1081157732");Instant instant = Instant.ofEpochSecond(epoch);ZonedDateTime.ofInstant(instant, ZoneOffset.UTC); # ZonedDateTime = 2004-04-05T09:35:32Z[UTC]
在这种情况下,您最好将ZonedDateTime
其标记为UTC时区中的日期,因为Epoch是在Java使用的Unix时间内以UTC定义的。
ZoneOffset
包含UTC时区的便捷常量,如上面的最后一行所示。它的超类,ZoneId
可用于调整到其他时区。
ZoneId zoneId = ZoneId.of( "America/Montreal" );
添加回答
举报
0/150
提交
取消