LocalDateTime withNano() method in Java with Examples

withNano() method of LocalDateTime class in Java is used to get a copy of this LocalDateTime with the nano-seconds changed to the nano-seconds passed as the parameter to this method. The remaining values of this LocalDateTime remain the same.
Syntax:
public LocalDateTime withNano(int nanoSeconds)
Parameter: Single mandatory parameter nanoSeconds which specify the nano-seconds to be set in the resultant LocalDateTime instance. The value of these nano-seconds can range from 0 to 999999999.
Return Type: A LocalDateTime instance with the nano-seconds changed to the nano-seconds passed as the parameter to this method. The remaining values of this LocalDateTime remain the same.
Exceptions: The function throws a DateTimeException if the nano-seconds value is invalid.
Example 1:
Java
// Java Program to illustrate withNano() method of// LocalDateTime class// Importing required classesimport java.time.*;import java.util.*;// Main classpublic class GFG { // Main driver method public static void main(String[] args) { // Creating tan instance of LocalDateTime class LocalDateTime dt = LocalDateTime.now(); // Getting the String representation of this // LocalDateTime System.out.println("Original LocalDateTime: " + dt.toString()); // Getting a new LocalDateTime with nano-seconds 0 System.out.println("New LocalDateTime: " + dt.withNano(0)); }} |
Original LocalDateTime: 2018-11-30T12:54:17.484 New LocalDateTime: 2018-11-30T12:54:17
Example 2:
Java
// Java Program to illustrate withNano() method of// LocalDateTime class// Importing required classesimport java.time.*;import java.util.*;// Main classpublic class GFG { // Main driver method public static void main(String[] args) { // Creating an object of LocalDateTime class inside // main() LocalDateTime dt = LocalDateTime.parse("2015-04-06T10:15:30"); // Getting the String representation of this // LocalDateTime System.out.println("Original LocalDateTime: " + dt.toString()); // Getting a new LocalDateTime with nano-seconds // 99999 System.out.println("New LocalDateTime: " + dt.withNano(99999)); }} |
Original LocalDateTime: 2015-04-06T10:15:30 New LocalDateTime: 2015-04-06T10:15:30.000099999
Now we will be handling with care withNano(0) method is used for removing the nano seconds and retaining date-time till seconds.
Example 3:
Note: Special Case: If the seconds value is:00, then while doing at toString() will eliminate the seconds portion.
Example:
Java
// Java Program to illustrate withNano() method of// LocalDateTime class// Importing required classesimport java.io.*;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;// Main classclass GFG { // Main driver method public static void main(String[] args) throws InterruptedException { // Creating an object of DateTimeFormatter class DateTimeFormatter dtf = DateTimeFormatter.ISO_DATE_TIME; // If condition holds true while (true) { // Making thread to sleep for 500 nanoseconds Thread.sleep(500); // Print and display commands System.out.println("Original :00 seconds --> " + LocalDateTime.now()); System.out.println( "Without Formatter(Observe when seconds is :00) --> " + LocalDateTime.now().withNano(0)); System.out.println( "With Formatter -> " + LocalDateTime.now().withNano(0).format( dtf)); } }} |
Output:



