Java 8的日期和时间API 2024-9-24

java8引入了全新的日期和时间API,主要在java.time包中。

以下是关于如何使用这些功能的简要概述:

1. 表示日期和时间

LocalDate:表示没有时区的日期(年,月,日)

LocalDate today = LocalDate.now();
LocalDate specificDate = LocalDate.of(2024,9,24);

LocalTime:表示没有时区的时间(时,分,秒)

LocalTime now = LocalTime.now();
LocalTime specficTime = LocalTime.of(14,30,0);

LocalDateTime:表示日期和时间

LocalDateTime now = LocalDateTime.now();
LocalDateTime specificDateTime = LocalDateTime.of(2024,9,24,14,30);

ZonedDateTime:表示带时区的日期和时间

ZonedDateTime zonedNow = ZonedDateTime.now();

2. 格式化

使用DateTimeFormatter格式化日期和时间

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = LocalDateTime.now().format(formatter);

3. 设置和修改时间

修改日期和时间的方法通常以with或plus、minus开头

LocalDate nextWeek =today.plusWeeks(1);
LocalDate previousMonth = today.minusMonths(1);
LocalDateTime updatedDateTime = now.withHour(10),withMinute(0);

4. 时间段的计算

使用Duration和Period来计算时间段

Duration:用于表示时间间隔(例如,小时,分钟,秒)

Period:用于表示日期间隔(例如,年,月,日)

LocalDate startDate = LocalDate.of(2024,1,1);
LocalDate endDate = LocalDate.of(2024,12,31);
Period period = Period.butween(startDate,endDate);//计算日期间隔

LocalTime startTime = LocalTime.of(10,0);
LocalTime endTime = LocalTime.of(12,30);
Duration duration = Duration.between(startTime,endTime);// 计算时间间隔

5. 与 Date / Calendar 对象的转换

可以使用java.util.Date和java.util.Calendar进行转换

// Date 转换为LocalDate
Date dateObj = new Date();
LocalDate localDate = dateObj.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

// LocalDate 转换为 Date
Date convertedDate = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
// Canlendar 转换为LocalDate
Calendar calendar = Calendar.getstance();
LocalDate localDateFromCalendar = calendar.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

//LocalDate 转换为Calendar
Calender convertedCalendar = Calendar.getInstance();
convertedCalendar.setTime(Date.form(localDate.atStartOdDay(ZoneId.systemDefault()).toInstant()));

这个API提供了更简洁和更安全的日期时间操作方式,避免了旧版API的许多问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值