Here we will see how to get current UTC time in java in different ways.
How to get Current UTC Time:
In older versions of java like before Java8, we can get current UTC time using SimpleDateFormate object like below.
1. Current UTC Time – SimpleDateFormat:
private static Date getCurrentUtcTime() throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
SimpleDateFormat localDateFormat = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
return localDateFormat.parse( simpleDateFormat.format(new Date()) );
}
Output:
Sat Jun 08 04:54:47 IST 2019
2. Current UTC Time – Java8 Instant:
Java 8 brought an excellent new java.time.*package to supplement the old Java Date/Calendar classes. From Java 8 getting the UTC time as simple as creating Instant object like the following.
An Instant class represents a moment of the timeline in UTC as default timezone.
Instant instant = Instant.now();
System.out.println(instant.toString());
Output:
2019-06-08T04:54:47.543Z
3. Current UTC Time – Java8 OffsetDateTime:
UTC time with OffsetDateTime class.
OffsetDateTime now = OffsetDateTime.now(ZoneOffset.UTC);
System.out.println(now);
4. Current UTC Time – Joda Time
Add the Joda dependency in your classpath.
pom.xml
<!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.2</version>
</dependency>
Using Joda Time API, you can get current UTC time in a single line below.
private static void getCurrentUtcTimeJoda() throws ParseException {
DateTime now = new DateTime(); // Gives the default time zone.
DateTime dateTime = now.toDateTime(DateTimeZone.UTC ); // Converting default zone to UTC
System.out.println(dateTime);
}
Output:
2019-06-08T04:54:47.731Z
Done!
References:
Happy Learning 🙂