Java——time包使用方法详解
java.time 包是 Java 8 引入的新日期和时间 API(JSR 310),用于替代旧的 java.util.Date 和 java.util.Calendar 类。它提供了一组全新的类来处理日期、时间、时间间隔、时区等,具有更好的设计和易用性。
1.LocalDate:表示日期(年、月、日)的类。
LocalDate date = LocalDate.now(); // 获取当前日期
LocalDate specificDate = LocalDate.of(1949, 10, 1); // 创建指定日期:1949年10月1日
LocalDate parsedDate = LocalDate.parse("2018-09-02"); // 解析字符串为日期对象
LocalDate常用方法示例:
LocalDate date = LocalDate.now(); // 获取当前日期
int year = date.getYear(); // 获取年份
Month month = date.getMonth(); // 获取月份
int dayOfMonth = date.getDayOfMonth(); // 获取月份中的天数
DayOfWeek dayOfWeek = date.getDayOfWeek(); // 获取星期几
boolean leapYear = date.isLeapYear(); // 判断是否是闰年
System.out.println("获取年份:"+year);
System.out.println("获取月份:"+month);
System.out.println("获取月份中的天数:"+dayOfMonth);
System.out.println("获取星期几:"+dayOfWeek);
System.out.println("判断是否是闰年:"+leapYear);
System.out.println("获取当前日期:"+date);
2.LocalTime:表示时间(小时、分钟、秒、纳秒)的类。
LocalTime time = LocalTime.now(); // 获取当前时间
LocalTime specificTime = LocalTime.of(8, 30, 45); // 创建指定时间:08:30:45
LocalTime parsedTime = LocalTime.parse("12:30:00"); // 解析字符串为时间对象
int hour = time.getHour(); // 获取小时
int minute = time.getMinute(); // 获取分钟
int second = time.getSecond(); // 获取秒
int nano = time.getNano(); // 获取纳秒
3.LocalDateTime:表示日期和时间的类,是 LocalDate 和 LocalTime 的组合。
LocalDateTime dateTime = LocalDateTime.now(); // 获取当前日期和时间
LocalDateTime specificDateTime = LocalDateTime.of(2023, 11, 2, 8, 30, 45); // 创建指定日期和时间
LocalDateTime parsedDateTime = LocalDateTime.parse("2023-11-02T08:30:45"); // 解析字符串为日期时间对象
LocalDate datePart = dateTime.toLocalDate(); // 提取日期部分
LocalTime timePart = dateTime.toLocalTime(); // 提取时间部分
4.ZonedDateTime:表示带时区的日期和时间的类。除了日期和时间信息,它还包含时区信息。
ZonedDateTime zonedDateTime = ZonedDateTime.now(); // 获取当前日期和时间(带时区)
ZonedDateTime specificZonedDateTime = ZonedDateTime.of(2023, 11, 2, 8, 30, 45, ZoneId.of("Asia/Shanghai")); // 创建指定日期和时间(带时区)
ZonedDateTime parsedZonedDateTime = ZonedDateTime.parse("2023-11-02T08:30:45+08:00[Asia/Shanghai]"); // 解析字符串为日期时间对象(带时区)
ZoneId zone = zonedDateTime.getZone(); // 获取时区
5.Duration:表示时间间隔的类,用于计算两个时间点之间的差异。
Duration duration = Duration.between(startTime, endTime); // 计算两个时间点之间的时间间隔
long seconds = duration.getSeconds(); // 获取总秒数
long minutes = duration.toMinutes(); // 获取总分钟数
6.Period:表示日期间隔的类,用于计算两个日期之间的差异。
Period period = Period.between(startDate, endDate); // 计算两个日期之间的日期间隔
int years = period.getYears(); // 获取年数
int months = period.getMonths(); // 获取月数
int days = period.getDays(); // 获取天数
上述是 java.time 包中一些常用类的简要介绍和使用示例。这些类提供了丰富的功能来处理日期、时间和时间间隔,支持各种操作、格式化和计算需求。