新旧版本Java时间、日期API转化
发布日期:2021-11-04 11:54:26 浏览次数:0 分类:技术文章

java8发布之后,提供了许多新版本的时间、日期API,除非涉及到历史遗留代码,否则我们应该坚持使用新API,以保证最好的用户体验,和享受最新的功能特性。

 

旧转新:

一、Date -> Instant

Instant ins = new Date().toInstant();

二、Calendar -> Instant

Instant ins = Calendar.getInstant().toInstant();

三、Instant -> ZonedDateTime

ZonedDateTime zdt = ins.atZone(TimeZone.getDefault().toZoneId());

四、TimeZone  -> ZoneId

ZoneId z = TimeZone.getDefault().toZoneId();

 

新转旧:

一、ZonedDateTime -> long

ZonedDateTime zdt = ZonedDateTime.now();long ts = zdt.toEpochSecond() * 1000;      // ZonedDateTime -> longlong ts2 = zdt.toInstant().toEpochMilli(); // ZonedDateTime -> Instant -> long

二、long -> Date

Date d = new Date(ts);// 可以修改Date对象中的时间戳 d.setTime(ts2);

三、long -> Calendar

Calendar calendar = Calendar.getInstance();calendar.clear();calendar.setTimeZone(TimeZone.getTimeZone(zdt.getZone().getId()));calendar.setTimeInMillis(ts);

四、ZoneId -> TimeZone

TimeZone tz = TimeZone.getTimeZone(ZoneId.systemDefault()); // ZoneId -> TimeZoneTimeZone tz2 = TimeZone.getTimeZone(ZoneId.systemDefault().getId()); // (ZoneId)String -> TimeZone

 

上一篇:Java正则表达式的使用
下一篇:Java8新版本时间、日期处理