📜  java 时间 - Java (1)

📅  最后修改于: 2023-12-03 14:42:19.105000             🧑  作者: Mango

Java 时间

Java 是一个跨平台、面向对象、可移植性强的编程语言。在 Java 中,日期和时间处理非常简单,Java 提供了 java.time 包来处理日期和时间。

java.time 包

java.time 包是 Java 8 中新增的日期和时间 API,用于替代已经过时的 java.util.Date 和 java.util.Calendar 类。java.time 包提供了以下主要类:

  • LocalDate:表示日期(年月日)。
  • LocalTime:表示时间(小时、分钟、秒和纳秒)。
  • LocalDateTime:表示日期和时间。
  • Instant:时间戳。
  • Duration:两个时间之间的时间间隔。
  • Period:两个日期之间的时间间隔。
  • ZoneId:表示时区。
  • ZonedDateTime:表示带有时区的日期和时间。
常用方法
LocalDateTime 的使用
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class LocalDateTimeExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formatDateTime = now.format(formatter);
        System.out.println("现在的时间是:" + formatDateTime);
    }
}
获取两个日期之间的天数
import java.time.LocalDate;
import java.time.Period;

public class DaysBetweenTwoDatesExample {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.parse("2022-01-01");
        LocalDate date2 = LocalDate.parse("2022-02-01");
        Period period = Period.between(date1, date2);
        System.out.println("两个日期之间相差的天数:" + period.getDays());
    }
}
获取当前时间戳
import java.time.Instant;

public class CurrentTimeStampExample {
    public static void main(String[] args) {
        Instant currentTimestamp = Instant.now();
        System.out.println("当前时间戳:" + currentTimestamp.toEpochMilli());
    }
}
获取某个时区的时间
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class ZonedDateTimeExample {
    public static void main(String[] args) {
        ZoneId zoneId = ZoneId.of("Asia/Shanghai");
        ZonedDateTime zonedDateTime = ZonedDateTime.now(zoneId);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formatDateTime = zonedDateTime.format(formatter);
        System.out.println("上海的当前时间是:" + formatDateTime);
    }
}
总结

java.time 包提供了很多方便的类和方法来处理日期和时间,防止了传统的 java.util.Date 和 java.util.Calendar 类的一些缺陷。在实际开发中,我们可以根据需要选择合适的类和方法来处理时间相关的问题。