jdk8时间相关操作LocalDateTime

获取当前时间(jdk读取默认系统时区)

LocalDateTime now = LocalDateTime.now();
System.out.println(now.toString());

输出结果:
2022-07-23T12:42:44.183

获取指定时区时间

LocalDateTime beijingTime = LocalDateTime.now(TimeZone.getTimeZone("Asia/Shanghai").toZoneId());
LocalDateTime gmt8Time = LocalDateTime.now(TimeZone.getTimeZone("GMT+8").toZoneId());
LocalDateTime parisTime = LocalDateTime.now(TimeZone.getTimeZone("Europe/Paris").toZoneId());
System.out.println(beijingTime.toString());
System.out.println(gmt8Time);
System.out.println(parisTime.toString());

输出结果:
2022-07-23T12:42:44.171
2022-07-23T12:42:44.171
2022-07-23T06:42:44.172

获取指定时区的时间有两种用法:
1、TimeZone.getTimeZone("Asia/Shanghai")
2、TimeZone.getTimeZone("GMT+8")
这两种区别在于第一种支持夏令时,可以获取夏令时的偏移量。

获取指定格式的时间

LocalDateTime now = LocalDateTime.now();
System.out.println(now.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss")));

输出结果为:
2022年07月23日 12:54:17

解析指定格式的时间

LocalDateTime parse = LocalDateTime.parse("2022年07月23日 12:54:17", DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"));
System.out.println(parse);

输出结果为:
2022-07-23T12:54:17

输出指定时间
如:输出2008年08点08分

LocalDateTime tem = LocalDateTime.of(2008, 8, 8, 8, 8, 8);
System.out.println(tem);

输出结果:
2008-08-08T08:08:08

时间计算
获取一个月后的时间(用于设定过期时间等)

LocalDateTime now = LocalDateTime.now();
LocalDateTime temp = now.plusDays(30);
System.out.println(temp);

输出结果:
2022-08-22T13:09:36.529

获取时间戳

LocalDateTime.now().atZone(TimeZone.getTimeZone("GMT+8").toZoneId()).toInstant().toEpochMilli()

时间戳转换为时间

Instant instant = Instant.ofEpochMilli(System.currentTimeMillis());
System.out.println(LocalDateTime.ofInstant(instant, ZoneId.systemDefault()));

你可能感兴趣的:(jdk8时间相关操作LocalDateTime)