Java 8 日期时间类

Java 8 推出了新的日期时间类,比较常使用的有LocalDateTime,ZonedDateTime,ZoneId,ZoneOffset,DateTimeFormatter,通过这几个类可以使处理时间问题变得简单并且不容易出错

定义

  • LocalDateTime:A date-time without a time-zone in the ISO-8601 calendar system, such as 2007-12-03T10:15:30.
  • ZonedDateTime:A date-time with a time-zone in the ISO-8601 calendar system, such as 2007-12-03T10:15:30+01:00 Europe/Paris.
  • ZoneId: A time-zone ID, such as Europe/Paris.
  • ZoneOffset:A time-zone offset from Greenwich/UTC, such as +02:00.

LocalDateTime表示不带时区的时间,
ZonedDateTime是由LocalDateTime和时区ZoneId或者LocalDateTime和与格林标准时间的差ZoneOffset组成

使用

直接举例

// 字符串时间
String dateStr = "2020-01-22 19:30:00";

// 定义上海时区
ZoneId zoneShanghai = ZoneId.of("Asia/Shanghai");

// 标准时间+3小时
ZoneOffset zoneOffset = ZoneOffset.ofHours(3);

// 定义格式转换器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

// 字符串时间转换为LocalDateTime格式
LocalDateTime localDateTime = LocalDateTime.from(formatter.parse(dateStr));

// 按上海时区定义ZonedDateTime时间
ZonedDateTime dateTime1 = ZonedDateTime.of(localDateTime,zoneShanghai);

// +3时区
ZonedDateTime dateTime2 = ZonedDateTime.of(localDateTime,zoneOffset);

// 日期转换,带时区
String time1 = formatter.withZone(zoneShanghai).format(dateTime1);

String time2 = formatter.withZone(zoneShanghai).format(dateTime2);
// time1 = "2020-01-22 19:30:00" , 对应的时区转换,日期没有问题
// time2 = "2020-01-23 00:30:00", 使用了上海时区(+8小时时区),结果为+5个小时时间


ZonedDateTime 和LocalDateTime 时间格式都可以很方便的是做时间操作,下面仅已LocalDateTime举例

// 加一天,一周,一月  ,判断两个日期
LocalDateTime newTime = localDateTime.plusDays(1L);
newDate = localDateTime.plusWeeks(1L);
newDate = localDateTime.plusMonths(1L);

localDateTime.isAfter(newDate);  // false

// 获取周、月等信息
newDate.getDayOfWeek();
newDate.getMonth();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值