Volver a la página principal
domingo 20 octubre 2024
13

Cómo pasar de texto a fecha en Java

En Java, para convertir una cadena de texto (String) a una fecha (Date), se utilizan principalmente las clases del paquete java.time (disponible desde Java 8). Este paquete ofrece varias clases útiles, como LocalDate, LocalDateTime y DateTimeFormatter, que permiten manejar y formatear fechas de manera sencilla y robusta.

Conversión de Texto a Fecha con LocalDate y DateTimeFormatter

La clase LocalDate es la más utilizada para trabajar con fechas sin hora, y LocalDateTime incluye tanto la fecha como la hora. Para realizar la conversión de texto a fecha, se utiliza la clase DateTimeFormatter para definir el formato del texto.

Ejemplo: Convertir texto a LocalDate

Si el texto tiene solo una fecha (sin horas), como "2024-10-20", puedes usar LocalDate:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        // Texto a convertir
        String fechaTexto = "2024-10-20";
        
        // Definir el formato de la fecha
        DateTimeFormatter formato = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        
        // Convertir el texto a LocalDate
        LocalDate fecha = LocalDate.parse(fechaTexto, formato);
        
        System.out.println("Fecha convertida: " + fecha);
    }
}

Ejemplo: Convertir texto a LocalDateTime

Si el texto también incluye la hora, como "2024-10-20 14:30", puedes usar LocalDateTime:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        // Texto a convertir
        String fechaTexto = "2024-10-20 14:30";
        
        // Definir el formato de la fecha y hora
        DateTimeFormatter formato = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
        
        // Convertir el texto a LocalDateTime
        LocalDateTime fechaHora = LocalDateTime.parse(fechaTexto, formato);
        
        System.out.println("Fecha y hora convertida: " + fechaHora);
    }
}

Ejemplo con formato distinto

Si el formato del texto es diferente, por ejemplo, "20/10/2024", puedes modificar el patrón en el DateTimeFormatter para adaptarlo:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        // Texto a convertir con formato "dd/MM/yyyy"
        String fechaTexto = "20/10/2024";
        
        // Definir el formato adecuado
        DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        
        // Convertir el texto a LocalDate
        LocalDate fecha = LocalDate.parse(fechaTexto, formato);
        
        System.out.println("Fecha convertida: " + fecha);
    }
}

Conversión de Texto a Date (Clase Legacy)

Antes de Java 8, se utilizaba la clase java.util.Date, pero esta es menos flexible y más propensa a errores. Sin embargo, si necesitas trabajar con esta clase, puedes usar SimpleDateFormat para convertir texto a Date:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        // Texto a convertir
        String fechaTexto = "20/10/2024";
        
        // Definir el formato adecuado
        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
        
        try {
            // Convertir el texto a Date
            Date fecha = formato.parse(fechaTexto);
            System.out.println("Fecha convertida: " + fecha);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

Algunos ejemplos

1. Convertir un texto con formato yyyy-MM-dd a LocalDate:

LocalDate fecha = LocalDate.parse("2024-10-20", DateTimeFormatter.ofPattern("yyyy-MM-dd"));

2. Convertir un texto con formato yyyy-MM-dd HH:mm a LocalDateTime:

LocalDateTime fechaHora = LocalDateTime.parse("2024-10-20 14:30", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));

3. Convertir un texto con formato dd/MM/yyyy a LocalDate:

LocalDate fecha = LocalDate.parse("20/10/2024", DateTimeFormatter.ofPattern("dd/MM/yyyy"));

Para más detalles sobre cómo trabajar con fechas y tiempos, puedes consultar la documentación oficial de Java.

Etiquetas:
java
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer