对于localDateTime,和localDate和localtime常用方法使用
时间: 2025-07-05 21:00:26 浏览: 9
### Java `LocalDateTime`、`LocalDate` 和 `LocalTime` 常用方法
#### 构造对象的方法
通过静态工厂方法可以方便地创建 `LocalDate`、`LocalTime` 或者 `LocalDateTime` 对象。
- **获取当前时间**
可以使用 `.now()` 方法来获得系统默认时区下的当前日期或时间实例:
```java
LocalDate ld = LocalDate.now();
LocalTime lt = LocalTime.now();
LocalDateTime ldt = LocalDateTime.now();
```
这些方法返回的是不可变的对象,代表调用时刻的确切日期和/或时间[^1]。
- **指定特定日期或时间**
若要构建具有确切年月日或小时分钟秒的对象,则可利用`.of(...)`方法传入相应参数:
```java
LocalDate localDate1 = LocalDate.of(2099, Month.NOVEMBER, 11);
LocalTime localTime1 = LocalTime.of(9, 8, 59);
LocalDateTime localDateTime1 = LocalDateTime.of(2025, Month.NOVEMBER, 16, 14, 30, 1);
```
此外还支持其他重载版本允许更灵活地定义目标时间点。
#### 时间操作与调整
对于已经存在的 `Local*` 实例来说,提供了多种方式来进行修改而不改变原始数据结构本身因为它们都是不可变得设计原则下产物。
- **加减天数、月份或年份**
利用链式调用来增加或减少一定量的时间单位:
```java
LocalDate nextYearSameDay = today.plusYears(1L);
LocalTime oneHourLater = now.plusHours(1L);
LocalDateTime yesterdayAtNoon = current.withHour(12).minusDays(1L);
```
- **设置具体字段值**
如果只是想要更改某个部分而保持其余不变的话,那么可以用到如下所示的方式:
```java
LocalDate changedMonth = original.with(Month.DECEMBER);
LocalTime setSecondToZero = time.withSecond(0);
LocalDateTime changeOnlyMinutePart = dt.withMinute(30);
```
上述所有变更都会产生全新的实例而不是直接作用于原变量上[^3]。
#### 格式化输出
当涉及到显示给用户看的时候往往需要按照一定的格式呈现出来,在这方面新API也做得非常友好。
```java
// 定义自定义模式字符串并应用它进行格式化
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedNow = LocalDateTime.now().format(formatter);
// 解析来自外部源(比如数据库记录)的字符串回到内部表示形式
TemporalAccessor parsedData = formatter.parseBest("2023-07-25 15:45:30", LocalDateTime::from, LocalDate::from);
```
这里不仅限定了固定的布局还可以根据实际场景定制更加复杂的表达样式[^4]。
阅读全文
相关推荐


















