LocalDateTime currentTime = LocalDateTime.now();
LocalDateTime datetime = LocalDateTime.of(2023, 10, 15, 14, 30, 45);
int year = datetime.getYear(); // 2023 Month month = datetime.getMonth(); // OCTOBER int monthValue = datetime.getMonthValue(); // 10 int day = datetime.getDayOfMonth(); // 15 int hour = datetime.getHour(); // 14 int minute = datetime.getMinute(); // 30 int second = datetime.getSecond(); // 45

LocalDateTime datetime = LocalDateTime.of(2023, 10, 15, 14, 30, 45);
// 使用预定义格式器 String isoFormat = datetime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME); // "2023-10-15T14:30:45"

String basicFormat = datetime.format(DateTimeFormatter.BASIC_ISO_DATE); // "20231015"
// LocalDateTime 转 Date LocalDateTime localDateTime = LocalDateTime.now(); Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());

// Date 转 LocalDateTime Date oldDate = new Date(); LocalDateTime newLocalDateTime = oldDate.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDateTime();
// 记录操作时间点 LocalDateTime operationTime = LocalDateTime.now(); log.info("用户 {} 在 {} 执行了登录操作", userId, operationTime);
// 格式化日志时间 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedTime = operationTime.format(formatter); log.debug("当前操作时间:{}", formattedTime);
// 错误示例:误以为LocalDateTime包含时区 LocalDateTime localTime = LocalDateTime.now(); // 直接存储到数据库,不同时区的用户看到的时间会不一致
// 正确做法:明确时区转换 ZonedDateTime zonedTime = localTime.atZone(ZoneId.systemDefault()); Instant instant = zonedTime.toInstant();