Java8日期类用法示例

版权声明:本文为博主原创文章,转载时需要带上原文链接。 https://blog.csdn.net/a158123/article/details/84800126

获取当前日期

//当前日期和时间
LocalDateTime nowDateTime=LocalDateTime.now();
//当前日期
LocalDate nowDate=LocalDate.now();
//当前时间
LocalTime nowTime=LocalTime.now();

获取起始和结束时间

//当前日期
LocalDate now=LocalDate.now();
//起始时间,LocalTime.MIN为00:00
LocalDateTime startTime=LocalDateTime.of(now,LocalTime.MIN);
//结束时间,LocalTime.MAX为23:59:59.999999999
LocalDateTime endTime=LocalDateTime.of(now,LocalTime.MAX);

获取指定日期和时间

//当前日期
LocalDate now=LocalDate.now();
//一天的开始时间
LocalDateTime startOfDay=now.atStartOfDay();
//本周一
LocalDate monday=now.with(DayOfWeek.MONDAY);
//上周一
LocalDate lastMonday=now.minusWeeks(1).with(DayOfWeek.MONDAY);
//本月第一天
LocalDate firstDayOfMonth=now.with(TemporalAdjusters.firstDayOfMonth());
//本月最后一天
LocalDate lastDayOfMonth=now.with(TemporalAdjusters.lastDayOfMonth());
//感恩节(即11月第4个星期四)
//withMonth()方法设置月份,需要注意这个月份是从1开始的,和Date以及Calendar的从0开始不同
LocalDate thanksGivingDay=LocalDate.now().withMonth(11).withDayOfMonth(1).with(DayOfWeek.THURSDAY).plusWeeks(3L);;

计算时间差

//当前日期
LocalDate now=LocalDate.now();
//结束日期
LocalDate endDate=now.plusWeeks(1L);
//日期差值
Period dateDiff=Period.between(now,endDate);
//相差天数
int dayDiffOfDate=dateDiff.getDays();

//起始时间,LocalTime.MIN为00:00
LocalDateTime startTime=LocalDateTime.of(now,LocalTime.MIN);
//结束时间,LocalTime.MAX为23:59:59.999999999
LocalDateTime endTime=LocalDateTime.of(now,LocalTime.MAX);
//日期时间差值
Duration timeDiff=Duration.between(startTime,endTime);
//相差小时数,忽略分钟和秒
long hourDiffOfTime=timeDiff.toHours();
//相差分钟数,忽略秒
long minutesDiffOfTime=timeDiff.toMinutes();
//相差秒数
long secondsDiffOfTime=timeDiff.getSeconds();

时区

//初始化日本时区,UTC+9
ZoneId japanZone=ZoneOffset.ofHours(9);
//日本现在时间
ZonedDateTime japanNow=ZonedDateTime.now(japanZone);

日期格式化

//当前日期和时间
LocalDateTime nowDateTime=LocalDateTime.now();
//日期格式化
DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//日期格式化字符串
String dateStr=formatter.format(nowDateTime);
//日期格式化字符串转为日期时间对象
LocalDateTime localDateTime=LocalDateTime.parse(dateStr,formatter);

日期判断和比较

//当前日期
LocalDate now=LocalDate.now();
//结束日期
LocalDate endDate=now.plusWeeks(1L);
//日期是否相等
now.isEqual(LocalDate.now());
//是否在某个日期之前
now.isBefore(endDate);
//是否在某个日期之后
now.isAfter(endDate);
//年份是否为闰年
now.isLeapYear();

猜你喜欢

转载自blog.csdn.net/a158123/article/details/84800126