JAVA时间存储类Period和Duration使用详解
在JAVA中,时间的处理是经常会遇到的问题。为了更方便地处理时间,JAVA提供了java.time
包,其中包含了两个非常重要的时间存储类Period
和Duration
。下面我们就一起来详细了解它们的使用方法以及注意事项。
Period
Period
类是用于表示时间段的类,它包含了年、月、日等信息。
创建Period对象
可以使用静态方法Period.of()
来创建Period
对象。例如,我们要创建一个表示3年、2个月、1天的Period
对象,可以这样写:
Period period = Period.of(3, 2, 1);
获取Period对象中的信息
使用Period
对象的方法,可以获取其中包含的信息。例如,我们要获取上面创建的Period
对象中的年、月、日,可以这样写:
int years = period.getYears(); // 3
int months = period.getMonths(); // 2
int days = period.getDays(); // 1
操作Period对象
使用Period
对象还可以进行一些操作。例如,我们想把上面的Period
对象加上2年,可以这样写:
Period newPeriod = period.plusYears(2);
如果我们只想修改Period
对象中的某个字段,可以使用其他的plusXXX()
方法。例如,我们修改上述Period
对象的天数为5,可以这样写:
Period newPeriod = period.withDays(5);
Period示例
下面是一个完整的示例,演示了如何使用Period
对象来计算两个日期之间的时间差。
LocalDate date1 = LocalDate.of(2020, 1, 1);
LocalDate date2 = LocalDate.of(2021, 2, 2);
Period period = Period.between(date1, date2);
int years = period.getYears();
int months = period.getMonths();
int days = period.getDays();
System.out.println("时间差为:" + years + "年" + months + "个月" + days + "天");
Duration
Duration
类是用于表示时间间隔的类,它包含了小时、分钟、秒等信息。
创建Duration对象
可以使用静态方法Duration.of
来创建Duration
对象。例如,我们要创建一个表示10小时,30分钟,20秒的Duration
对象,可以这样写:
Duration duration = Duration.ofHours(10).plusMinutes(30).plusSeconds(20);
获取Duration对象中的信息
使用Duration
对象的方法,可以获取其中包含的信息。例如,我们要获取上面创建的Duration
对象中的小时、分钟、秒,可以这样写:
long hours = duration.toHours(); // 10
long minutes = duration.toMinutes() % 60; // 30
long seconds = duration.getSeconds() % 60; // 20
操作Duration对象
使用Duration
对象还可以进行一些操作。例如,我们想把上面的Duration
对象加上1个小时,可以这样写:
Duration newDuration = duration.plusHours(1);
如果我们只想修改Duration
对象中的某个字段,可以使用其他的plusXXX()
方法。例如,我们修改上述Duration
对象的分钟数为50,可以这样写:
Duration newDuration = duration.withMinutes(50);
Duration示例
下面是一个完整的示例,演示了如何使用Duration
对象来计算两个时间之间的时间差。
LocalDateTime time1 = LocalDateTime.of(2020, 1, 1, 10, 30, 0);
LocalDateTime time2 = LocalDateTime.of(2020, 1, 1, 12, 20, 0);
Duration duration = Duration.between(time1, time2);
long hours = duration.toHours();
long minutes = duration.toMinutes() % 60;
long seconds = duration.getSeconds() % 60;
System.out.println("时间差为:" + hours + "小时" + minutes + "分" + seconds + "秒");
以上就是Period
和Duration
的详细使用方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA时间存储类Period和Duration使用详解 - Python技术站