Fecha del calendario en formato YYYY-MM-DD en Java

Shikha Chaudhary 12 octubre 2023
  1. Fecha en formato YYYY-MM-DD en Java
  2. Formatee la fecha en el formato YYYY-MM-DD en Java
  3. Utilice la clase SimpleDateFormat en Java
  4. Conclusión
Fecha del calendario en formato YYYY-MM-DD en Java

La Date de Java encapsula la hora y la fecha actuales. La clase date lo hace con la ayuda de dos constructores: los constructores Date() y Date(long millisec).

Usamos el constructor Date() para inicializar el objeto con la fecha y hora actual. Por otro lado, el constructor Date(long millisec) toma como argumento el número de milisegundos desde la medianoche del 1 de enero de 1970.

Pero el resultado que obtenemos no está en el formato yyyy-MM-dd. Este artículo mostrará cómo podemos producir la salida en este formato.

Usamos el método date() en Java para obtener la fecha y hora actuales. Para hacerlo, usamos un objeto Date con el método toString(). Mira el siguiente ejemplo para entenderlo.

import java.util.Date;
public class DateExample {
  public static void main(String args[]) {
    // Create a date object
    Date date_of_today = new Date();

    // Use toString() to print the date
    System.out.println(date_of_today.toString());
  }
}

Producción :

Mon Jan 10 09:58:43 UTC 2022

Este ejemplo utiliza date_of_today para instanciar el objeto DDate y el método toString() para imprimir la fecha. Tenga en cuenta que la salida que obtenemos contiene el día, el mes, la fecha y el año y la hora en formato horas: minutos: segundos.

Esto plantea un problema cuando trabajamos con dos o más fechas. Para eliminar el nombre del día y la hora de esta salida, podemos usar el método printf() de dos formas. El primero utiliza los símbolos % y $.

Mira el ejemplo de abajo.

import java.util.Date;
public class DateExample {
  public static void main(String args[]) {
    // Create a new object
    Date date_of_today = new Date();

    // Display the date
    System.out.printf("%1$s %2$tB %2$td, %2$tY", "Date:", date_of_today);
  }
}

Producción :

Date: January 10, 2022

La segunda forma es hacer uso de <flag. Mira el mismo ejemplo otra vez.

import java.util.Date;
public class DateExample {
  public static void main(String args[]) {
    // Create a new object
    Date date_of_today = new Date();

    // display the date
    System.out.printf("%s %tB %<te, %<tY", "Date:", date_of_today);
  }
}

Producción :

Date: January 10, 2022

Tenga en cuenta que en estos ejemplos, se omite el tiempo. Pero todavía no obtenemos la salida en el formato yyyy-MM-dd. Veamos cómo podemos lidiar con este problema.

Fecha en formato YYYY-MM-DD en Java

Java tiene un paquete java.time. En lugar de usar la clase de fecha para trabajar con la fecha y la hora, podemos usar el paquete java.time. Veamos primero un ejemplo.

// import the java.time package
import java.time.LocalDate;

public class DemoOfDate {
  public static void main(String[] args) {
    // create an object for date
    LocalDate date_of_today = LocalDate.now();

    // Display the date
    System.out.println(date_of_today);
  }
}

Producción :

2022-01-10

Usamos el paquete java.time y la clase LocalDate en este ejemplo. Esta vez obtenemos la salida en formato yyyy-MM-dd. El paquete java.time tiene cuatro clases principales.

  • LocalDate - Da como salida una fecha en formato año, mes, día o yyyy-MM-dd.
  • LocalTime - Da la salida en tiempo y nanosegundos como HH-mm-ss-ns.
  • LocalDateTime - Da la salida tanto en la fecha como en la hora como yyyy-MM-dd-HH-mm-ss-ns.
  • DateTimeFormatter: actúa como formateador de objetos de fecha y hora y se utiliza para mostrarlos y analizarlos.

Tenga en cuenta que estamos usando la clase LocalDate en el ejemplo anterior. Además, hacemos uso del método ahora(). El método now() en java es un método de la clase LocalTime. Obtiene la hora actual en la zona horaria predeterminada de un reloj del sistema.

Sintaxis:

public static LocalTime now()

No pasamos ningún parámetro en el método now(). Una forma más es obtener la salida en formato yyyy-MM-dd. Veamos eso también. Aquí está el enlace a la documentación.

Formatee la fecha en el formato YYYY-MM-DD en Java

Para cambiar la fecha del calendario al formato yyyy-MM-dd, también podemos utilizar el concepto de formato. Hace que trabajar con la fecha y la hora sea mucho más flexible.

Para ello, utilizamos el método ofPattern() presente en el paquete java.time. Las diversas formas en que podemos obtener la salida usando el método ofPattern() son las siguientes.

  • yyyy-MM-dd - This gives the output as 2022-01-25
  • dd/MM/yyyy - This gives the output as 25/01/2022
  • dd-MMM-yyyy - This gives the output as 25/01/2022
  • E, MMM dd yyyy - This gives the output as Tue, Jan 25 2022

Veamos un ejemplo.

// import the LocalDateTime class
import java.time.LocalDateTime;
// import the DateTimeFormatter class
import java.time.format.DateTimeFormatter;

public class DemoOfDate {
  public static void main(String[] args) {
    LocalDateTime date_of_today = LocalDateTime.now();

    System.out.println("Output before formatting: " + date_of_today);
    DateTimeFormatter format_date_of_today = DateTimeFormatter.ofPattern("yyyy-MM-dd");

    String formattedDate = date_of_today.format(format_date_of_today);
    System.out.println("Output after formatting: " + formattedDate);
  }
}

Producción :

Output before formatting: 2022-01-01T10:46:21.449669400
Output after formatting: 2022-01-01

Tenga en cuenta que podemos obtener la salida en el formato yyyy-MM-dd usando el formato. También podemos movernos por los valores de todos estos formatos.

Por ejemplo, cuando pasamos la cadena yyyy-MM-dd en el método ofPattern(), podemos cambiar esa cadena a yyyy-dd-MM o dd-MM-yyyy o de cualquier otra forma. según la necesidad. Esto se aplica a todos los formatos proporcionados por el método ofPattern().

Aquí usamos un método más: el método format(). El método format() formatea una cadena según la configuración regional, los argumentos y el formato dados en Java.

Si no especificamos la configuración regional, el método format() llama al método Locale.getDefault() para obtener la configuración regional predeterminada. El método format() funciona igual que la función printf().

Utilice la clase SimpleDateFormat en Java

Para obtener la salida en formato yyyy-MM-dd, podemos usar la clase SimpleDateFormat. Proporciona métodos para formatear (cambiar la fecha a una cadena) y analizar (cambiar la cadena a la fecha) la fecha y la hora en Java.

Al heredarlo, funciona con la clase java.text.DateFormat. Veamos un ejemplo.

import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
  public static void main(String[] args) {
    Date date_of_today = new Date();
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    String stringDate = format.format(date_of_today);
    System.out.println(stringDate);
  }
}

Producción :

2022-01-01

Para saber más sobre la clase SimpleDateFormat en Java, consulte esta documentación.

Conclusión

Este artículo discutió cómo podríamos cambiar la fecha del calendario al formato yyyy-MM-dd en Java. Estos incluyen el uso del paquete java.time, el formateo utilizando el método toPattern() y la clase SimpleDateFormat. Los diversos métodos son los métodos toString() y now().

Podemos obtener la salida en formato yyyy-MM-dd y usarlo cuando se incluye más de una fecha.

Artículo relacionado - Java Date

Artículo relacionado - Java Calendar