Formato de fecha de cambio de Java

Rashmi Patidar 12 octubre 2023
Formato de fecha de cambio de Java

Hay varias opciones disponibles para convertir una cadena de fecha en formato de fecha. A continuación se mencionan formas en las que se pueden obtener los resultados deseados. Entendamos la variedad de formas del bloque de código a continuación.

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class StringToDateFormat {
  public static void main(String[] args) throws ParseException {
    System.out.print("Way1: ");
    SimpleDateFormat dt = new SimpleDateFormat("yyyyy-MM-dd");
    System.out.print(dt.parse("2021-11-05") + "\n");

    System.out.print("Way2: ");
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss", Locale.ENGLISH);
    System.out.print(formatter.parse("21/JAN/2021 21:35:56") + "\n");

    System.out.print("Way3: ");
    DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("EEE, d MMM yyyy", Locale.ENGLISH);
    System.out.print(LocalDate.parse("Wed, 5 May 2021", formatter1) + "\n");

    System.out.print("Way4: ");
    System.out.print(LocalDate.parse("2021-05-31") + "\n");
  }
}

En Way1, se crea una instancia de la clase SimpleDateFormat. Toma un valor de pattern del formato en el que se ingresa la cadena de fecha. De esta manera, hemos ingresado una fecha en formato yyyy-MM-dd. La instanciación también arroja algunas excepciones como NullPointerException y IllegalArgumentException si el parámetro es nulo o ilegal. Ahora, con el objeto formatter creado recientemente, inicializamos un método parse. El método toma la cadena de fecha como valor de entrada y devuelve el tipo de datos Date después del análisis. Lanza ParseException cuando la cadena de fecha dada y el formateador no coinciden, o internamente la cadena de fecha no se analiza.

En Way2, nuevamente se usa la clase SimpleDateFormat para crear un formato que se supone que debe ingresar. Pero ahora, se llama a un constructor anulado de SimpleDateFormat. El primer parámetro es el format/ patrón de la cadena Date. Otro es Locale que define una región o área geográfica específica. Note: No se permiten todas las configuraciones regionales en el método. Ahora, verifique el patrón dd/MMM/yyyy HH:mm: ss que tenía un mes en formato mmm. El formato implica la abreviatura de los meses es aceptable en la forma mmm. Además, la cadena de formato puede tardar horas, minutos y segundos.

En Way3, el uso de la clase DateTimeFormat se realiza para formatear e imprimir objetos de fecha y hora. El método ofPattern se utiliza para preparar un formateador del patrón deseado. Ahora se llama al método estático de la clase LocalDate para analizar la fecha. El método es parse que toma el texto para analizar y DateTimeFormatter para especificar el formato del texto de fecha de entrada. El método devuelve la instancia LocalDate y no es nulo. Lanza DateTimeParseException cuando el texto no se puede analizar. El formato también puede tomar el nombre del día. La abreviatura EEE denota lo mismo en el formateador.

En Way4, se llama directamente al método parse que es un método de fábrica estático de la clase LocalDate. Esta vez no se define ningún patrón o instancia del formateador de ninguna manera. Ahora la función toma la cadena de fecha de entrada en la forma yyyy-MM-dd. La cadena de fecha especificada debe representar siempre una fecha válida y se convierte utilizando el formato DateTimeFormatter.ISO_LOCAL_DATE. El método lanza la excepción DateTimeParseException cuando el texto no se puede analizar.

A continuación se muestra la salida del código para convertir la cadena de fecha en el formulario Date.

Way1: Fri Nov 05 00:00:00 IST 2021
Way2: Thu Jan 21 21:35:56 IST 2021
Way3: 2021-05-05
Way4: 2021-05-31
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Artículo relacionado - Java Date