LocalDateTime LOCAL_DATE_TIME = LocalDateTime.of(2019, 7, 7, 20, 18, 18, 888);
ZonedDateTime ZONED_DATE_TIME = ZonedDateTime.of(2019, 7, 7, 20, 18, 18, 888, ZoneId.of("Asia/Tokyo"));
OffsetDateTime OFFSET_DATE_TIME = OffsetDateTime.of(2019, 7, 7, 20, 18, 18, 888, ZoneOffset.ofHours(9));
// 年
Assert.assertEquals(2019, LOCAL_DATE_TIME.getYear());
Assert.assertEquals(2019, OFFSET_DATE_TIME.getYear());
Assert.assertEquals(2019, ZONED_DATE_TIME.getYear());
// 月
Assert.assertEquals(Month.JULY, LOCAL_DATE_TIME.getMonth());
Assert.assertEquals(Month.JULY, OFFSET_DATE_TIME.getMonth());
Assert.assertEquals(Month.JULY, ZONED_DATE_TIME.getMonth());
Assert.assertEquals(7, LOCAL_DATE_TIME.getMonthValue());
Assert.assertEquals(7, OFFSET_DATE_TIME.getMonthValue());
Assert.assertEquals(7, ZONED_DATE_TIME.getMonthValue());
// 星期
Assert.assertEquals(DayOfWeek.SUNDAY, LOCAL_DATE_TIME.getDayOfWeek());
Assert.assertEquals(DayOfWeek.SUNDAY, OFFSET_DATE_TIME.getDayOfWeek());
Assert.assertEquals(DayOfWeek.SUNDAY, ZONED_DATE_TIME.getDayOfWeek());
// 日
Assert.assertEquals(7, LOCAL_DATE_TIME.getDayOfMonth());
Assert.assertEquals(7, OFFSET_DATE_TIME.getDayOfMonth());
Assert.assertEquals(7, ZONED_DATE_TIME.getDayOfMonth());
// 一年中的第几天
Assert.assertEquals(188, LOCAL_DATE_TIME.getDayOfYear());
Assert.assertEquals(188, OFFSET_DATE_TIME.getDayOfYear());
Assert.assertEquals(188, ZONED_DATE_TIME.getDayOfYear());
// 时
Assert.assertEquals(20, LOCAL_DATE_TIME.getHour());
Assert.assertEquals(20, ZONED_DATE_TIME.getHour());
Assert.assertEquals(20, OFFSET_DATE_TIME.getHour());
// 分
Assert.assertEquals(18, LOCAL_DATE_TIME.getMinute());
Assert.assertEquals(18, OFFSET_DATE_TIME.getMinute());
Assert.assertEquals(18, ZONED_DATE_TIME.getMinute());
// 秒
Assert.assertEquals(18, LOCAL_DATE_TIME.getSecond());
Assert.assertEquals(18, OFFSET_DATE_TIME.getSecond());
Assert.assertEquals(18, ZONED_DATE_TIME.getSecond());
// 纳秒
Assert.assertEquals(888, LOCAL_DATE_TIME.getNano());
Assert.assertEquals(888, ZONED_DATE_TIME.getNano());
Assert.assertEquals(888, OFFSET_DATE_TIME.getNano());
// 时间戳-秒
Assert.assertEquals(1562530698L, LOCAL_DATE_TIME.toEpochSecond(ZoneOffset.ofHours(0))); // 当前localDateTime视为0时区的时间、去获取时间戳
Assert.assertEquals(1562498298L, LOCAL_DATE_TIME.toEpochSecond(ZoneOffset.ofHours(9))); // 当前localDateTime视为东9区的时间、去获取时间戳
Assert.assertEquals(1562498298L, ZONED_DATE_TIME.toEpochSecond()); // 基于ZONED_DATE_TIME时区信息、去获取时间戳
Assert.assertEquals(1562498298L, OFFSET_DATE_TIME.toEpochSecond()); // 基于OFFSET_DATE_TIME时区信息、去获取时间戳
// 时间戳-毫秒
Assert.assertEquals(1562530698000L, LOCAL_DATE_TIME.toInstant(ZoneOffset.ofHours(0)).toEpochMilli());
Assert.assertEquals(1562498298000L, LOCAL_DATE_TIME.toInstant(ZoneOffset.ofHours(9)).toEpochMilli());
Assert.assertEquals(1562498298000L, ZONED_DATE_TIME.toInstant().toEpochMilli());
Assert.assertEquals(1562498298000L, OFFSET_DATE_TIME.toInstant().toEpochMilli());
System.out.println(LocalDateTime.MIN); // -999999999-01-01T00:00
System.out.println(LocalDateTime.MAX); // +999999999-12-31T23:59:59.999999999
System.out.println(OffsetDateTime.MIN); // -999999999-01-01T00:00+18:00
System.out.println(OffsetDateTime.MAX); // +999999999-12-31T23:59:59.999999999-18:00
//System.out.println(ZonedDateTime.MIN);不存在
//System.out.println(ZonedDateTime.MAX);不存在
LocalDateTime LOCAL_DATE_TIME = LocalDateTime.of(2019, 7, 7, 20, 18, 18, 888);
System.out.println(LOCAL_DATE_TIME); // 2019-07-07T20:18:18.000000888
System.out.println(LOCAL_DATE_TIME.plusDays(3)); // 2019-07-10T20:18:18.000000888
System.out.println(LOCAL_DATE_TIME.plusHours(-3)); // 2019-07-07T17:18:18.000000888
System.out.println(LOCAL_DATE_TIME.minusMinutes(3)); // 2019-07-07T20:15:18.000000888
System.out.println(LOCAL_DATE_TIME.plus(1, ChronoUnit.WEEKS)); // 2019-07-14T20:18:18.000000888
System.out.println(LOCAL_DATE_TIME.minus(1, ChronoUnit.YEARS)); // 2018-07-07T20:18:18.000000888
LocalDateTime after = LOCAL_DATE_TIME.plusDays(3).plusHours(-3);
after = after.plusHours(-3);
// 计算时间差
Period period = Period.between(LOCAL_DATE_TIME.toLocalDate(), after.toLocalDate());
System.out.println("相差天数:" + period.getDays()); // 3
Period period2 = Period.between(after.toLocalDate(), LOCAL_DATE_TIME.toLocalDate());
System.out.println("相差天数:" + period2.getDays()); // -3
Duration duration = Duration.between(LOCAL_DATE_TIME.toLocalTime(), after.toLocalTime());
System.out.println("相差小时数:" + duration.toHours()); // -6
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。