public class NuDate {
public static void main(String[] args) throws InterruptedException {
Instant start = Instant.now();//Instant 表示时间线上的一个瞬时点
//System.out.println(start.getEpochSecond());//距1970年的毫秒数
//Thread.sleep(2000);
Instant end = Instant.now();
Duration duration = Duration.between(start, end);//Duration 该模型是一个有向的持续时间,这意味着持续时间可能是负的。
//System.out.println(duration.getSeconds());
//ZonedDateTime带时区 LocalDateTime不带时区(不建议使用)
//ZoneID该模型是一个有向的持续时间,这意味着持续时间可能是负的。
//ofInstant(Instant instant, ZoneId zone)获得 ZonedDateTime实例从一个 Instant。
ZonedDateTime dtUTC = ZonedDateTime.ofInstant(start, ZoneId.of("UTC"));
//System.out.println(dtUTC);
ZonedDateTime dtSH = start.atZone(ZoneId.systemDefault());//systemDefault()=of("Asia/Shanghai")
//System.out.println(dtSH);
//获取可用区域标识集的集合。
//System.out.println(ZoneRulesProvider.getAvailableZoneIds());
//ofPattern(String pattern) 创建一个格式化程序使用指定的模式。
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss xx");
//format(TemporalAccessor temporal) 使用此格式化程序格式的日期时间对象。
String dateStr = df.format(dtSH);
//System.out.println(dateStr);
//parse(CharSequence text, DateTimeFormatter formatter) 获得 ZonedDateTime实例从使用特定格式的文本字符串
//反序列化
ZonedDateTime dtSH2 = ZonedDateTime.parse(dateStr, df);
//System.out.println(dtSH2);
// ZonedDateTime nextTues = dtSH.with(TemporalAdjusters.next(DayOfWeek.TUESDAY));
// System.out.println(nextTues);
}
}