Duration class biểu thị một khoảng thời gian được tính bằng giây hoặc nano giây, nó phù hợp để xử lý với khoảng thời gian ngắn, đòi hỏi độ chính xác cao về thời gian.
Chúng ta có thể xác định khoảng cách giữa hai Instant bằng Duration object như sau:
Instant start = Instant.parse("2020-01-04T05:10:56.392Z"); Instant end = Instant.parse("2020-01-04T05:10:57.392Z"); Duration duration = Duration.between(start, end); System.out.println(duration.toMillis()); // 1000
Khởi tạo Duration
Chúng ta có thể khởi tạo một object Duration bằng các method ofDays(), ofHours(), ofMillis(), ofMinutes(), ofNanos(), ofSeconds()
Duration fromDays = Duration.ofDays(1); Duration fromMinutes = Duration.ofMinutes(60);
getSeconds()
Chúng ta có thể sử dụng getSeconds() để lấy khoảng thời gian theo đơn vị giây trong Duration object ra
System.out.println(duration.getSeconds()); // 1
isNegative()
Sử dụng để kiểm tra xem thời gian kết thúc là lớn hơn hay bé hơn thời gian bắt đầu.
System.out.println(duration.isNegative()); // FALSE
Convert Duration
Chúng ta có thể chuyển Duration object sang các kiểu date-time khác như ngày, giờ, phút, giây etc bằng các method toDays(), toHours(), toMillis(), toMinutes()
Duration fromDays = Duration.ofDays(1); System.out.println(fromDays.toHours()); // 24
Tăng giảm Duration
Để tăng giảm giá trị của Duration chúng ta có thể sử dụng các method plusHours(), plusMillis() etc để tăng và minusHours(), minusMillis() etc để giảm.
Duration fromDays = Duration.ofDays(1); Duration update = fromDays.plusDays(1); System.out.println(update.toDays()); // 2
Hoặc chúng ta có thể sử dụng plus() và minus() để cộng trừ hai Duration object với nhau, hoặc vào trường được chỉ định.
Duration fromDays = Duration.ofDays(1); Duration duration1 = fromDays.plus(60, ChronoUnit.SECONDS); System.out.println(duration1.toMinutes()); // 1441 Duration duration2 = fromDays.plus(Duration.ofDays(1)); System.out.println(duration2.toMinutes()); // 2880