🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (178K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Introduction
The Duration class in Java 8, part of the java.time package, represents a time-based amount of time, such as '34.5 seconds'. It can be used to measure time intervals in nanoseconds and seconds. The Duration class is immutable and thread-safe, making it a robust choice for handling time intervals in applications.
Key Points:
- Immutability: Immutable and thread-safe.
- Precision: Can represent durations down to nanoseconds.
- Arithmetic Operations: Supports addition, subtraction, and other arithmetic operations.
- Compatibility: Can be used with other Java 8 date and time classes.
Table of Contents
- Creating a Duration
- Methods of Duration Class
- Comparing Durations
- Manipulating Durations
- Converting Durations
- Using Duration with Date-Time APIs
- Examples
- Conclusion
1. Creating a Duration
Using of Methods
The Duration class provides various of methods to create durations of different time units.
Duration duration1 = Duration.ofDays(1); // 1 day
Duration duration2 = Duration.ofHours(2); // 2 hours
Duration duration3 = Duration.ofMinutes(30); // 30 minutes
Duration duration4 = Duration.ofSeconds(45); // 45 seconds
Duration duration5 = Duration.ofMillis(500); // 500 milliseconds
Duration duration6 = Duration.ofNanos(1000000); // 1 millisecond in nanoseconds
Using between
Creates a duration between two Temporal objects (e.g., two Instant objects).
Instant start = Instant.now();
Instant end = start.plus(Duration.ofHours(1));
Duration duration = Duration.between(start, end);
System.out.println("Duration between start and end: " + duration);
2.() Methods of Duration Class
getSeconds()
Returns the number of seconds in the duration.
long seconds = duration.getSeconds();
System.out.println("Seconds: " + seconds);
getNano()
Returns the nanoseconds part of the duration.
int nanos = duration.getNano();
System.out.println("Nanoseconds: " + nanos);
toDays()
Converts the duration to days.
long days = duration.toDays();
System.out.println("Days: " + days);
toHours()
Converts the duration to hours.
long hours = duration.toHours();
System.out.println("Hours: " + hours);
toMinutes()
Converts the duration to minutes.
long minutes = duration.toMinutes();
System.out.println("Minutes: " + minutes);
toMillis()
Converts the duration to milliseconds.
long millis = duration.toMillis();
System.out.println("Milliseconds: " + millis);
toNanos()
Converts the duration to nanoseconds.
long nanos = duration.toNanos();
System.out.println("Nanoseconds: " + nanos);
3. Comparing Durations
isZero()
Checks if the duration is zero.
boolean isZero = duration.isZero();
System.out.println("Is duration zero? " + isZero);
isNegative()
Checks if the duration is negative.
boolean isNegative = duration.isNegative();
System.out.println("Is duration negative? " + isNegative);
compareTo()
Compares this duration to another duration.
Duration duration1 = Duration.ofMinutes(5);
Duration duration2 = Duration.ofMinutes(10);
int comparison = duration1.compareTo(duration2);
System.out.println("Comparison: " + comparison); // -1, 0, or 1
4. Manipulating Durations
plus()
Adds the specified duration to this duration.
Duration longerDuration = duration.plus(Duration.ofMinutes(10));
System.out.println("Longer Duration: " + longerDuration);
minus()
Subtracts the specified duration from this duration.
Duration shorterDuration = duration.minus(Duration.ofMinutes(10));
System.out.println("Shorter Duration: " + shorterDuration);
multipliedBy()
Multiplies this duration by the specified value.
Duration multipliedDuration = duration.multipliedBy(2);
System.out.println("Multiplied Duration: " + multipliedDuration);
dividedBy()
Divides this duration by the specified value.
Duration dividedDuration = duration.dividedBy(2);
System.out.println("Divided Duration: " + dividedDuration);
5. Converting Durations
toString()
Converts the duration to an ISO-8601 string representation.
String durationString = duration.toString();
System.out.println("Duration as String: " + durationString);
parse()
Parses an ISO-8601 string representation to create a duration.
Duration parsedDuration = Duration.parse("PT1H30M"); // 1 hour and 30 minutes
System.out.println("Parsed Duration: " + parsedDuration);
6. Using Duration with Date-Time APIs
Adding and Subtracting Duration to Instant
Instant now = Instant.now();
Instant later = now.plus(Duration.ofHours(1));
Instant earlier = now.minus(Duration.ofHours(1));
System.out.println("Now: " + now);
System.out.println("One hour later: " + later);
System.out.println("One hour earlier: " + earlier);
Using Duration with ChronoUnit
Duration duration = Duration.of(1, ChronoUnit.HOURS);
System.out.println("Duration in Hours: " + duration);
7. Examples
Example 1: Creating a Duration
Duration duration = Duration.ofMinutes(90);
System.out.println("Duration: " + duration);
Example 2: Comparing Durations
Duration duration1 = Duration.ofMinutes(30);
Duration duration2 = Duration.ofMinutes(60);
System.out.println("Is duration1 zero? " + duration1.isZero());
System.out.println("Is duration1 negative? " + duration1.isNegative());
System.out.println("Comparison: " + duration1.compareTo(duration2));
Example 3: Manipulating Durations
Duration duration = Duration.ofMinutes(30);
Duration longerDuration = duration.plus(Duration.ofMinutes(10));
Duration shorterDuration = duration.minus(Duration.ofMinutes(10));
System.out.println("Longer Duration: " + longerDuration);
System.out.println("Shorter Duration: " + shorterDuration);
Example 4: Converting Duration to Other Units
Duration duration = Duration.ofMinutes(90);
long hours = duration.toHours();
long minutes = duration.toMinutes();
long millis = duration.toMillis();
System.out.println("Hours: " + hours);
System.out.println("Minutes: " + minutes);
System.out.println("Milliseconds: " + millis);
Example 5: Using Duration with Instant
Instant now = Instant.now();
Duration duration = Duration.ofHours(1);
Instant later = now.plus(duration);
Instant earlier = now.minus(duration);
System.out.println("Now: " + now);
System.out.println("One hour later: " + later);
System.out.println("One hour earlier: " + earlier);
8. Conclusion
The Duration class in Java 8 provides a powerful and flexible way to work with time-based amounts of time. Its immutability, precision, and easy interoperability with other date-time classes make it a valuable tool for handling time intervals in Java applications.
Summary of Key Points:
- Immutability: Immutable and thread-safe.
- Precision: Can represent durations down to nanoseconds.
- Arithmetic Operations: Supports addition, subtraction, multiplication, and division.
- Interoperability: Easily converts to and from other date-time types.
By understanding and utilizing the Duration class effectively, you can manage time intervals in your Java applications with precision and reliability.
My Top and Bestseller Udemy Courses. The sale is going on with a 70 - 80% discount. The discount coupon has been added to each course below:
Build REST APIs with Spring Boot 4, Spring Security 7, and JWT
[NEW] Learn Apache Maven with IntelliJ IDEA and Java 25
ChatGPT + Generative AI + Prompt Engineering for Beginners
Spring 7 and Spring Boot 4 for Beginners (Includes 8 Projects)
Available in Udemy for Business
Building Real-Time REST APIs with Spring Boot - Blog App
Available in Udemy for Business
Building Microservices with Spring Boot and Spring Cloud
Available in Udemy for Business
Java Full-Stack Developer Course with Spring Boot and React JS
Available in Udemy for Business
Build 5 Spring Boot Projects with Java: Line-by-Line Coding
Testing Spring Boot Application with JUnit and Mockito
Available in Udemy for Business
Spring Boot Thymeleaf Real-Time Web Application - Blog App
Available in Udemy for Business
Master Spring Data JPA with Hibernate
Available in Udemy for Business
Spring Boot + Apache Kafka Course - The Practical Guide
Available in Udemy for Business
Comments
Post a Comment
Leave Comment