Convertir cadena a objeto DateTime en Java

Rupam Yadav 12 octubre 2023
  1. Usar SimpleDateFormat y java.util.Date para convertir una cadena de fecha en un objeto DateTime en Java
  2. Usar la librería de fecha y hora de Java 8 para convertir una cadena de fecha en formato de fecha y hora
  3. Usa joda-time para convertir una cadena de fecha en formato de fecha y hora
  4. Convierte la cadena Date en Timestamp con el Constructor Timestamp en Java
  5. Convierte la cadena de fechas en Timestamp con LocalDate en Java
  6. Convierte la cadena de fecha en Timestamp con el método atStartOfDay() en Java
Convertir cadena a objeto DateTime en Java

Este artículo introducirá cómo podemos convertir una cadena dada en un objeto DateTime usando diferentes enfoques y ejemplos.

Usar SimpleDateFormat y java.util.Date para convertir una cadena de fecha en un objeto DateTime en Java

SimpleDateFormat es una clase usada para analizar y dar formato a una fecha en una forma sensible a la localidad. Nos permite convertir una cadena en DateTime y convertir un objeto DateTime en una cadena.

En el siguiente código, usamos la cadena date_time, que se analiza llamando al método parse en la instancia dateParser de SimpleDateFormat. El formato en el que queremos que se analice la cadena date_time se especifica dentro del constructor SimpleDateFormat.

También hemos creado una nueva instancia de la clase SimpleDateFormat con un formato diferente. La fecha analizada se formatea e imprime.

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

public class StringToDateTime {
  public static void main(String[] args) {
    String date_time = "11/27/2020 05:35:00";
    SimpleDateFormat dateParser = new SimpleDateFormat("MM/dd/yy HH:mm:ss");
    {
      try {
        Date date = dateParser.parse(date_time);
        System.out.println(date);

        SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yy");
        System.out.println(dateFormatter.format(date));

      } catch (ParseException e) {
        e.printStackTrace();
      }
    }
  }
}

Resultado:

Fri Nov 27 05 : 35 : 00 UTC 2020 11 / 27 / 20

Usar la librería de fecha y hora de Java 8 para convertir una cadena de fecha en formato de fecha y hora

La clase LocaleDate representa una fecha en formato ISO sin tiempo. La clase DateTimeFormatter se usa para analizar fechas en diferentes formatos. Podemos proporcionar patrones personalizados llamando al método ofPattern() en DateTimeFormatter.

LocaleDate tiene un método de parse(), que toma la cadena de texto personalizada y un formateador específico inputFormat para parsear y obtener una instancia LocalDate. La instancia LocaleDate obtenida date es entonces formateada e impresa como salida.

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

public class Main {
  public static void main(String[] args) {
    DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");

    LocalDate date = LocalDate.parse("11/27/2020 05:35:00", inputFormat);

    DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy");
    System.out.println(date.format(outputFormat));
  }
}

Resultado:

11/27/2020

Usa joda-time para convertir una cadena de fecha en formato de fecha y hora

joda-time es una biblioteca estándar de DateTime que proporciona un rico conjunto de métodos para realizar cálculos de fecha y hora. La dependencia de maven para incluir la funcionalidad de esta biblioteca se da a continuación.

 <!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.10.8</version>
    </dependency>

DateTimeFormatter puede analizar representaciones personalizadas de la fecha y la hora.

Creamos una instancia de formateo datetimeformat con un patrón personalizado. Llamando a parseDateTime en la instancia del formateador se obtiene un objeto DateTime usando la cadena personalizada dateTime.

Aquí hemos creado una nueva instancia DateTimeFormatter dateTimeFormatOut con un patrón personalizado diferente. El método print() es llamado en la nueva instancia que imprime el objeto DateTime joda_time en un nuevo formato.

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class StringToDateTime {
  public static void main(String[] args) {
    String dateTime = "11/27/2020 05:35:00";
    DateTimeFormatter datetimeformat = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss");

    DateTime joda_time = datetimeformat.parseDateTime(dateTime);
    System.out.println("joda_time : " + joda_time);

    DateTimeFormatter dateTimeFormatOut = DateTimeFormat.forPattern("MM/dd/yyyy");
    System.out.println("date time format out:  " + dateTimeFormatOut.print(joda_time));
  }
}

Resultado:

joda_time : 2020-11-27T05:35:00.000+05:30
date time format out:  11/27/2020

Convierte la cadena Date en Timestamp con el Constructor Timestamp en Java

Aquí, usamos el constructor Timestamp para obtener un objeto Timestamp. Primero, usamos la clase SimpleDateFormat para establecer el formato de la date y luego obtenemos el objeto date usando el método parser(), luego usamos el método geteTime() para añadir la hora con la fecha y obtener un timestamp como resultado. Vea el ejemplo a continuación.

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleTesting {
  public static void main(String[] args) {
    try {
      DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
      Date date = dateFormat.parse("12/10/1990");
      Timestamp timeStampDate = new Timestamp(date.getTime());
      System.out.println(timeStampDate);
    } catch (ParseException e) {
      System.out.println(e);
    }
  }
}

Resultado:

 1990-10-12 00:00:00.0

Convierte la cadena de fechas en Timestamp con LocalDate en Java

En Java 8, añade un nuevo paquete java.time que contiene varias clases para tratar la fecha y la hora. Aquí, usamos la clase LocalDate de ese paquete. Usamos el método parse() de la clase LocalDate para obtener el objeto LocalDate de la cadena de fecha y luego usamos el método atTime() para obtener el objeto LocalDateTime que devuelve una fecha con la hora. El método now() se usa para obtener la hora actual del sistema.

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class SimpleTesting {
  public static void main(String[] args) {
    LocalDate date = LocalDate.parse("2025-11-25");
    System.out.println(date);
    LocalDateTime dateTime = date.atTime(LocalTime.now());
    System.out.println(dateTime);
  }
}

Resultado:

2025 - 11 - 25 2025 - 11 - 25T09 : 44 : 56.814795

Convierte la cadena de fecha en Timestamp con el método atStartOfDay() en Java

El método atStartOfDay() en la clase LocalDate también se usa para obtener el objeto LocalDateTime. Este método añade la hora a la fecha al comienzo del día y devuelve una fecha-hora en lugar de una simple fecha. Mira el ejemplo de abajo.

import java.time.LocalDate;
import java.time.LocalDateTime;

public class SimpleTesting {
  public static void main(String[] args) {
    String strDate = "2019-10-20";
    LocalDate date = LocalDate.parse(strDate);
    LocalDateTime dateTime = date.atStartOfDay();
    System.out.println(dateTime);
  }
}

Resultado:

2019-10-20T00:00
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java DateTime