Java 日期时间工具包–java.time的使用
Java 8及以上版本引入了新的日期时间API,即java.time包,该包提供了许多有用的类和方法,使得Java开发人员能够更加轻松地处理日期和时间。
1. 使用LocalDate类
LocalDate
类表示本地日期,即年月日,使用方法如下:
LocalDate currentDate = LocalDate.now();
上述代码将会创建一个LocalDate
对象,表示当前日期。我们还可以使用parse()
方法根据指定的字符串创建LocalDate
对象。
LocalDate firstDate = LocalDate.parse("2021-01-01");
LocalDate
类也提供了许多方法来操作日期,例如plusDays()
方法可以增加天数,minusMonths()
方法可以减少月数,因为LocalDate
类是不可变的,所有这些方法的返回值都是一个新的LocalDate
对象,不会改变原来的对象。
LocalDate newDate = firstDate.plusDays(5).minusMonths(1);
上述代码将会生成一个新的LocalDate
对象,表示比firstDate
提前一个月五天的日期值。
2. 使用LocalTime类
LocalTime
类表示本地时间,即时分秒,使用方法如下:
LocalTime currentTime = LocalTime.now();
上述代码将会创建一个LocalTime
对象,表示当前时间。我们还可以使用parse()
方法根据指定的字符串创建LocalTime
对象。
LocalTime time = LocalTime.parse("12:34:56");
LocalTime
类也提供了许多方法来操作时间,例如plusMinutes()
方法可以增加分钟数,minusHours()
方法可以减少小时数,因为LocalTime
类是不可变的,所有这些方法的返回值都是一个新的LocalTime
对象,不会改变原来的对象。
LocalTime newTime = time.plusMinutes(30).minusHours(2);
上述代码将会生成一个新的LocalTime
对象,表示比time
提前两个小时三十分钟的时间值。
3. 使用LocalDateTime类
LocalDateTime
类表示本地日期时间,即年月日时分秒,使用方法如下:
LocalDateTime currentDateTime = LocalDateTime.now();
上述代码将会创建一个LocalDateTime
对象,表示当前日期时间。我们还可以使用parse()
方法根据指定的字符串创建LocalDateTime
对象。
LocalDateTime dateTime = LocalDateTime.parse("2021-01-01T12:34:56");
LocalDateTime
类也提供了许多方法来操作日期时间,例如plusDays()
方法可以增加天数,minusMonths()
方法可以减少月数,plusMinutes()
方法可以增加分钟数,minusHours()
方法可以减少小时数,因为LocalDateTime
类是不可变的,所有这些方法的返回值都是一个新的LocalDateTime
对象,不会改变原来的对象。
LocalDateTime newDateTime = dateTime.plusDays(5).minusMonths(1).plusMinutes(30).minusHours(2);
上述代码将会生成一个新的LocalDateTime
对象,表示比dateTime
提前一个月五天两小时三十分钟的日期时间值。
4. 使用Instant类
Instant
类表示时间戳,即1970年1月1日0点0分0秒(UTC时区)开始到当前时间的毫秒数,使用方法如下:
Instant instant = Instant.now();
上述代码将会创建一个Instant
对象,表示当前时间的时间戳。我们还可以使用ofEpochMilli()
方法根据指定的毫秒数创建Instant
对象。
Instant instant = Instant.ofEpochMilli(System.currentTimeMillis());
5. 使用Duration类和Period类
Duration
类和Period
类表示时间段,区别在于Duration
类表示时间段的毫秒数,而Period
类表示时间段的年、月、日等时间单位。我们可以使用这两个类来计算两个时间点之间的时间间隔。
LocalDateTime beforeDateTime = LocalDateTime.parse("2021-01-01T00:00:00");
LocalDateTime afterDateTime = LocalDateTime.parse("2021-01-01T12:34:56");
Duration duration = Duration.between(beforeDateTime, afterDateTime);
long seconds = duration.getSeconds();
Period period = Period.between(beforeDateTime.toLocalDate(), afterDateTime.toLocalDate());
int days = period.getDays();
上述代码将会计算出beforeDateTime
和afterDateTime
之间的时间间隔,其中duration.getSeconds()
表示时间间隔的秒数,period.getDays()
表示时间间隔的天数。
示例1
LocalDate firstDate = LocalDate.parse("2021-01-01");
LocalDate secondDate = LocalDate.parse("2021-01-31");
Period period = Period.between(firstDate, secondDate);
System.out.println("January has " + period.getDays() + " days.");
上述代码将会输出:"January has 30 days."
示例2
LocalDateTime startDateTime = LocalDateTime.of(2021, 1, 1, 0, 0, 0);
LocalDateTime endDateTime = LocalDateTime.of(2021, 12, 31, 23, 59, 59);
Duration duration = Duration.between(startDateTime, endDateTime);
System.out.println("The year 2021 has " + duration.toHours() + " hours.");
上述代码将会输出:"The year 2021 has 8760 hours."
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 日期时间工具包–java.time的使用 - Python技术站