Time in Java
Our Java program demonstrates various operations with dates and times using the java.time package, which offers comprehensive support for handling time-related tasks.
import java.time.*;
import java.time.temporal.ChronoUnit;
public class TimeExample {
public static void main(String[] args) {
// We'll start by getting the current time.
Instant now = Instant.now();
System.out.println(now);
// You can build a ZonedDateTime by providing the
// year, month, day, etc. Times are always associated
// with a ZoneId, i.e. time zone.
ZonedDateTime then = ZonedDateTime.of(2009, 11, 17, 20, 34, 58, 651387237, ZoneId.of("UTC"));
System.out.println(then);
// You can extract the various components of the time
// value as expected.
System.out.println(then.getYear());
System.out.println(then.getMonth());
System.out.println(then.getDayOfMonth());
System.out.println(then.getHour());
System.out.println(then.getMinute());
System.out.println(then.getSecond());
System.out.println(then.getNano());
System.out.println(then.getZone());
// The Monday-Sunday DayOfWeek is also available.
System.out.println(then.getDayOfWeek());
// These methods compare two times, testing if the
// first occurs before, after, or at the same time
// as the second, respectively.
System.out.println(then.isBefore(ZonedDateTime.now()));
System.out.println(then.isAfter(ZonedDateTime.now()));
System.out.println(then.isEqual(ZonedDateTime.now()));
// The Duration class represents the interval between two times.
Duration diff = Duration.between(then.toInstant(), now);
System.out.println(diff);
// We can compute the length of the duration in
// various units.
System.out.println(diff.toHours());
System.out.println(diff.toMinutes());
System.out.println(diff.getSeconds());
System.out.println(diff.toNanos());
// You can use plus to advance a time by a given
// duration, or with minus to move backwards by a
// duration.
System.out.println(then.plus(diff));
System.out.println(then.minus(diff));
}
}To run this program, save it as TimeExample.java, compile it with javac TimeExample.java, and then run it with java TimeExample.
This Java code demonstrates similar functionality to the original example:
- We use
Instant.now()to get the current time. - We create a specific date and time using
ZonedDateTime.of(). - We extract various components of the date and time.
- We compare two times using
isBefore(),isAfter(), andisEqual(). - We calculate the duration between two times using
Duration.between(). - We perform arithmetic on times using
plus()andminus().
The main differences are:
- Java uses
ZonedDateTimeinstead of a simpletimestruct. - Duration calculations are done using the
Durationclass. - Java’s time API is more object-oriented, with methods like
toHours()instead ofHours().
This example showcases Java’s robust date and time handling capabilities, which are part of the java.time package introduced in Java 8.
Comments powered by Disqus