Convertir cadena a objeto DateTime en Java
-
Usar
SimpleDateFormat
yjava.util.Date
para convertir una cadena de fecha en un objeto DateTime en Java - Usar la librería de fecha y hora de Java 8 para convertir una cadena de fecha en formato de fecha y hora
-
Usa
joda-time
para convertir una cadena de fecha en formato de fecha y hora -
Convierte la cadena
Date
enTimestamp
con el ConstructorTimestamp
en Java -
Convierte la cadena de fechas en
Timestamp
conLocalDate
en Java -
Convierte la cadena de fecha en
Timestamp
con el métodoatStartOfDay()
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn