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 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