Java8日期类用法示例

本文详细介绍了Java中日期时间API的使用方法,包括如何获取当前日期时间、指定日期时间、计算时间差、处理时区、格式化日期以及进行日期判断和比较。通过实例演示了LocalDate、LocalTime、LocalDateTime、Period、Duration、ZoneId和DateTimeFormatter等类的应用。

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

获取当前日期

//当前日期和时间
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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值