Convertir cadena a marca de tiempo en Java

Rupam Yadav 12 octubre 2023
  1. Usa TimeStamp.valueOf() para convertir una cadena en Timestamp en Java
  2. Usa Date.getTime() para convertir una cadena a Timestamp en Java
Convertir cadena a marca de tiempo 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 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