Duration class trong java

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
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x