📅  最后修改于: 2023-12-03 14:42:47.270000             🧑  作者: Mango
Duration类是Java 8新增的一个时间跨度类,用于表示时间跨度,在计算时间间隔方面非常有用。该类提供了多个构造方法,其中的ofSeconds(long seconds, long nanoAdjustment)
方法用于创建指定秒和纳秒的Duration对象。该方法返回一个持续时间,其中参数seconds表示秒数,参数nanoAdjustment表示附加的纳秒数。
public static Duration ofSeconds(long seconds, long nanoAdjustment)
返回一个Duration对象,表示指定秒和纳秒的时间跨度。如果纳秒数不为0,则会被添加到秒数中。
下面是使用ofSeconds
方法创建Duration对象的示例代码:
// 创建一个持续时间为1秒的Duration对象
Duration duration1 = Duration.ofSeconds(1);
System.out.println("duration1: " + duration1);
// 创建一个持续时间为2秒的Duration对象
Duration duration2 = Duration.ofSeconds(2);
System.out.println("duration2: " + duration2);
// 创建一个持续时间为3秒500毫秒的Duration对象
Duration duration3 = Duration.ofSeconds(3, 500000000);
System.out.println("duration3: " + duration3);
// 创建一个持续时间为-1秒的Duration对象
Duration duration4 = Duration.ofSeconds(-1);
System.out.println("duration4: " + duration4);
输出结果:
duration1: PT1S
duration2: PT2S
duration3: PT3.5S
duration4: PT-1S
其中,输出结果是通过Duration类的toString()
方法生成的。PT代表Period Time,即时间跨度的标准格式,数字部分是时间跨度的值。在示例中,持续时间为3秒500毫秒的Duration对象,显示为PT3.5S。
ofSeconds
方法时,我们应该保证秒数和纳秒数的值是合法的。例如,纳秒数应该在0到999,999,999之间。Duration
类表示,单位是纳秒,如果需要转换为其他时间单位,可以使用toDays()
、toHours()
、toMinutes()
、toMillis()
、toNanos()
等方法转换。