java如何计算时间
计算时间差
使用 java.time 包中的 Duration 类可以计算两个时间点之间的差值。以下是示例代码:
import java.time.Duration;
import java.time.LocalTime;
LocalTime start = LocalTime.of(10, 30);
LocalTime end = LocalTime.of(14, 45);
Duration duration = Duration.between(start, end);
long hours = duration.toHours();
long minutes = duration.toMinutes() % 60;
System.out.println(hours + "小时" + minutes + "分钟");
日期加减
使用 LocalDate 或 LocalDateTime 的 plus 和 minus 方法可以对日期进行加减操作:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
LocalDate today = LocalDate.now();
LocalDate nextWeek = today.plus(1, ChronoUnit.WEEKS);
LocalDate yesterday = today.minusDays(1);
格式化时间
使用 DateTimeFormatter 可以将时间格式化为指定的字符串:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = now.format(formatter);
System.out.println(formattedDateTime);
时间戳转换
将 Instant 转换为时间戳(毫秒):
import java.time.Instant;
Instant instant = Instant.now();
long timestamp = instant.toEpochMilli();
System.out.println(timestamp);
将时间戳转换为 LocalDateTime:
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
long timestamp = 1625097600000L;
LocalDateTime dateTime = LocalDateTime.ofInstant(
Instant.ofEpochMilli(timestamp), ZoneId.systemDefault()
);
System.out.println(dateTime);
比较时间
使用 isBefore、isAfter 或 equals 方法比较时间:
import java.time.LocalTime;
LocalTime time1 = LocalTime.of(10, 30);
LocalTime time2 = LocalTime.of(12, 0);
if (time1.isBefore(time2)) {
System.out.println("time1 在 time2 之前");
}






