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 Program to illustrate withNano() method of // LocalDateTime class // Importing required classes import java.time.*;
import java.util.*;
// Main class public 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 Program to illustrate withNano() method of // LocalDateTime class // Importing required classes import java.time.*;
import java.util.*;
// Main class public 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 Program to illustrate withNano() method of // LocalDateTime class // Importing required classes import java.io.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
// Main class class 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: