El método withNano() de la clase LocalDateTime en Java se usa para obtener una copia de este LocalDateTime con los nanosegundos cambiados a los nanosegundos pasados como parámetro de este método. Los valores restantes de este LocalDateTime siguen siendo los mismos.
Sintaxis:
public LocalDateTime withNano(int nanoSeconds)
Parámetro: único parámetro obligatorio nanoSeconds que especifica los nanosegundos que se establecerán en la instancia de LocalDateTime resultante. El valor de estos nanosegundos puede variar de 0 a 999999999.
Tipo de devolución: una instancia de LocalDateTime con los nanosegundos cambiados a los nanosegundos pasados como parámetro para este método. Los valores restantes de este LocalDateTime siguen siendo los mismos.
Excepciones : la función genera una excepción DateTimeException si el valor de los nanosegundos no es válido.
Ejemplo 1:
Java
// 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
Ejemplo 2:
Java
// 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
Ahora manejaremos con cuidado el método Nano(0) que se usa para eliminar los nanosegundos y retener la fecha y hora hasta los segundos.
Ejemplo 3:
Nota: Caso especial: si el valor de los segundos es: 00, al hacer toString() eliminará la parte de los segundos.
Ejemplo:
Java
// 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)); } } }
Producción: