Java 8 – How to form LocalDateTime passing Second/Nano and ZoneOffset ?

In this article, we will learn how to form LocalDateTime passing number of second/nanosecond & ZoneOffset using LocalDateTime.ofEpochSecond() method provided in Java 1.8 version

Form LocalDateTime passing Second & Nano & ZoneOffset :

  • LocalDateTime.ofEpochSecond(epochSecond, nanoOfSecond, ZoneOffset) –
    • Obtains an instance of LocalDateTime using seconds from the epoch of 1970-01-01T00:00:00Z
  • Pass number of seconds & nanoseconds and ZoneOffset to the LocalDateTime.ofEpochSecond() method which returns LocalDateTime
  • Finally, print LocalDateTime in different formatted style like SHORT & MEDIUM to the console

FormLocalDateTime4.java

package in.bench.resources.java8.localdatetime.examples;

import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;

public class FormLocalDateTime4 {

	public static void main(String[] args) {

		// 1. seconds
		long seconds = 1659961889L;
		System.out.println("Number of Seconds in long format = " + seconds);


		// 2. nanoseconds
		int nano = 123456789;
		System.out.println("Number of Nanoseconds in int format = " + nano);


		// 3. ZoneOffset
		ZoneOffset zoneOffset = ZoneOffset.of("+05:30");
		System.out.println("Default Zone Offset = " + zoneOffset);


		// 4. form LocalDateTime passing Seconds & NanoSeconds & ZoneOffset
		LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(seconds, nano, zoneOffset);
		System.out.println("\nLocalDateTime :- " + localDateTime);


		// 4.1 format LocalDateTime in FormatStyle.SHORT
		String formattedStr1 = localDateTime.format(
				DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT));
		System.out.println("\nLocalDateTime in FormatStyle.SHORT :- " + formattedStr1);


		// 4.2 format LocalDateTime in FormatStyle.MEDIUM
		String formattedStr2 = localDateTime.format(
				DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM));
		System.out.print("LocalDateTime in FormatStyle.MEDIUM :- " + formattedStr2);
	}
}

Output:

Number of Seconds in long format = 1659961889
Number of Nanoseconds in int format = 123456789
Default Zone Offset = +05:30

LocalDateTime :- 2022-08-08T18:01:29.123456789

LocalDateTime in FormatStyle.SHORT :- 08/08/22, 6:01 pm
LocalDateTime in FormatStyle.MEDIUM :- 08-Aug-2022, 6:01:29 pm

Related Articles:

References:

Happy Coding !!
Happy Learning !!

Java 8 – How to parse LocalDateTime in String form ?
Java 8 – How to form LocalDateTime passing Instant and ZoneId ?