Anteriormente en mi blog ya te mostré cómo formatear la fecha y hora actual en Java.
Ahora en este post te enseñaré a crear un objeto de tipo LocalDateTime a partir de una fecha como cadena o String.
Con lo que te enseñaré podrás crear un LocalDateTime
a partir de una String y con el formato que tú quieras.
String a LocalDateTime con Java
Veamos cómo convertir la cadena a un LocalDateTime
. Para esto debemos crear un formateador según el formato de nuestra cadena.
En mi caso tengo la siguiente fecha y hora como cadena: 2022-08-05 22:51:53
y quiero convertirla a un LocalDateTime desde un String.
El formato es yyyy-MM-dd HH:mm:ss
(justo aquí debes cambiar el formato si es que el tuyo es distinto) así que creamos un formateador:
DateTimeFormatter formateador = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.append(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
.toFormatter();
Y ahora al parsear nuestra fecha invocamos a LocalDateTime.parse
con la fecha como cadena y nuestro formateador.
Poniendo todo junto
El código final de ejemplo queda así:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
class Main {
public static void main(String[] args) {
String fechaCadena = "2022-08-05 22:51:53";
DateTimeFormatter formateador = new DateTimeFormatterBuilder().parseCaseInsensitive().append(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")).toFormatter();
LocalDateTime fecha = LocalDateTime.parse(fechaCadena, formateador);
System.out.println(fecha);
}
}
Declaramos la fecha como cadena (esta podría venir de una base de datos, entrada por teclado, archivo de texto, etcétera), luego indicamos el formateador y finalmente creamos nuestro LocalDateTime.
Recuerda que ahora ya tendremos la fecha como LocalDateTime
dentro de la variable fecha y ya podemos trabajar con ella como lo que es y no como una simple cadena.
Aquí te dejo más tutoriales de Java.