Java:JSR 310日期时间体系LocalDateTime、OffsetDateTime、ZonedDateTime

本文详细介绍了Java8中的JSR310日期时间体系,包括LocalDateTime、OffsetDateTime和ZonedDateTime的使用方法,构造、计算和格式化操作,以及它们之间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
JSR 310日期时间体系:

  • LocalDateTime:本地日期时间
  • OffsetDateTime:带偏移量的日期时间
  • ZonedDateTime:带时区的日期时间

日期时间包

import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

构造

LocalDateTime

// 获取本地时间
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
// 2023-09-20T15:12:35.899

// 获取当前的纽约时间
LocalDateTime nowNewYork = LocalDateTime.now(ZoneId.of("America/New_York"));
System.out.println(nowNewYork);
// 2023-09-20T03:12:35.902

OffsetDateTime

OffsetDateTime now = OffsetDateTime.now();
System.out.println(now);
// 2023-09-20T15:36:41.490+08:00

ZonedDateTime

ZonedDateTime now = ZonedDateTime.now();
System.out.println(now);
// 2023-09-20T15:36:02.513+08:00[Asia/Shanghai]

计算

// 获取本地时间
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
// 2023-09-20T15:21:06.789

// + 3天
LocalDateTime now3 = now.plusDays(3);
System.out.println(now3);
// 2023-09-23T15:21:06.789

// -4天
LocalDateTime now4 = now.minusDays(4);
System.out.println(now4);
// 2023-09-16T15:21:06.789

// 计算天数
Period between = Period.between(now.toLocalDate(), now3.toLocalDate());
System.out.println(between.getDays());
// 3

// 计算小时数
Duration between1 = Duration.between(now.toLocalTime(), now3.toLocalTime());
System.out.println(between1.toHours());
// 0

格式化

// 获取本地时间
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
// 2023-09-20T15:25:46.454

// 格式化
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String format = dateTimeFormatter.format(now);
System.out.println(format);
// 2023-09-20 15:25:46

// 解析时间格式的字符串
LocalDateTime parse = LocalDateTime.parse(format, dateTimeFormatter);
System.out.println(parse);
// 2023-09-20T15:27:15

参考文章

  1. LocalDateTime、OffsetDateTime、ZonedDateTime互转,这一篇绝对喂饱你
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值