Convertir cadena a marca de tiempo en Java
-
Usa
TimeStamp.valueOf()
para convertir una cadena en Timestamp en Java -
Usa
Date.getTime()
para convertir una cadena a Timestamp en Java
En este artículo, presentaremos dos métodos para convertir una cadena en una marca de tiempo en Java. Una marca de tiempo se utiliza principalmente en las bases de datos para representar la hora exacta de algún evento. La clase Timestamp
que usaremos en este tutorial es parte del paquete java.sql.Timestamp
.
Usa TimeStamp.valueOf()
para convertir una cadena en Timestamp en Java
Usaremos la función estática propia de la clase TimeStamp
- valueOf()
. Toma una cadena como argumento y luego la convierte en una marca de tiempo. Una cosa importante a tener en cuenta aquí es cuidar el formato en el que la fecha y la hora se escriben en la cadena que queremos que se convierta en un timestamp. Está restringido a un formato fijo, que es yyyy-mm-dd hh:mm:ss
.
No podemos cambiar el formato y luego esperar el resultado correcto, pero en cambio, si usamos un formato incorrecto, obtendremos una IllegalArgumentException
en la salida. En el siguiente ejemplo, hemos usado 2020-12-12 01:24:23
como la fecha y la hora en la cadena, que sigue el formato correcto de yyyy-mm-dd hh:mm:ss
.
Ahora podemos pasar dateTime
como único argumento del método valueOf(string)
, y convertirá una cadena en una marca de tiempo.
import java.sql.Timestamp;
public class StringToTimeStamp {
public static void main(String[] args) {
String dateTime = "2020-12-12 01:24:23";
Timestamp timestamp = Timestamp.valueOf(dateTime);
System.out.println(timestamp);
}
}
Producción :
2020-12-12 01:24:23.0
Podemos deshacernos de las restricciones de formato de la fecha y la hora usando el mismo valueOf()
, pero en lugar de pasarle directamente una cadena al método, usaremos la clase LocalDateTime
. Porque valueOf()
acepta un LocalDateTime
como argumento.
En el siguiente código, dateTime
tiene una fecha y una hora que luego se formatea usando el método ofPatter()
de la clase DateTimeFormatter
. Podemos usar este formateador para analizar y obtener un objeto LocalDateTime
usando la función LocalDateTime.from()
.
Una vez que obtenemos un objeto LocalDateTime
, podemos pasarlo a Timestamp.valueOf(localDateTime)
para convertir la cadena en una marca de tiempo.
import java.sql.Timestamp;
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class StringToTimeStamp {
public static void main(String[] args) throws ParseException {
String dateTime = "01/10/2020 06:43:21";
DateTimeFormatter formatDateTime = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.from(formatDateTime.parse(dateTime));
Timestamp ts = Timestamp.valueOf(localDateTime);
System.out.println(ts);
}
}
Producción :
2020-10-01 06:43:21.0
Usa Date.getTime()
para convertir una cadena a Timestamp en Java
El segundo método para convertir una cadena en una marca de tiempo utiliza múltiples clases y métodos. Al igual que en LocalDateTime
, podemos usar nuestro formato de fecha y hora en la cadena. Usamos la clase SimpleDateFormate()
para dar formato a la cadena y luego la analizamos en un objeto Date
.
Necesitamos el objeto Date
porque tiene el objeto getTime()
, que devuelve la fecha y la hora como long
. Podemos pasar este valor long
al constructor de Timestamp
como hemos hecho 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 StringToTimeStamp {
public static void main(String[] args) throws ParseException {
String inDate = "01/10/2020 06:43:21";
DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date date = df.parse(inDate);
long time = date.getTime();
Timestamp ts = new Timestamp(time);
System.out.println(ts);
}
}
Producción :
2020-01-10 06:43:21.0
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