Convertir une chaîne de caractères en Timestamp en Java

  1. Utilisez TimeStamp.valueOf() pour convertir une chaîne en timestamp en Java
  2. Utilisez Date.getTime() pour convertir une chaîne de caractères en horodatage en Java

Dans cet article, nous allons présenter deux méthodes pour convertir une chaîne de caractères en un horodatage en Java. L’horodatage est principalement utilisé dans les bases de données pour représenter l’heure exacte d’un événement. La classe Timestamp que nous utiliserons dans ce tutoriel est une partie du paquet java.sql.Timestamp.

Utilisez TimeStamp.valueOf() pour convertir une chaîne en timestamp en Java

Nous utiliserons la propre fonction statique de la classe TimeStamp - valueOf(). Elle prend une chaîne de caractères en argument et la convertit ensuite en un horodatage. Une chose importante à noter ici est de prendre soin du format dans lequel la date et l’heure sont écrites dans la chaîne que nous voulons convertir en un horodatage. Il est limité à un format fixe, qui est yyyy-mm-dd hh:mm:ss.

Nous ne pouvons pas changer le format et espérer le bon résultat, mais si nous utilisons un format incorrect, nous obtiendrons une IllegalArgumentException dans la sortie. Dans l’exemple ci-dessous, nous avons utilisé 2020-12-12 01:24:23 comme date et heure dans la chaîne, qui suit le format correct de yyyy-mm-dd hh:mm:ss.

Nous pouvons maintenant passer dateTime comme seul argument de la méthode valueOf(string), et elle convertira une chaîne en un horodatage.

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);
    }
}

Production :

2020-12-12 01:24:23.0

Nous pouvons nous débarrasser des restrictions de formatage de la date et de l’heure en utilisant la même méthode valueOf(), mais au lieu de passer directement une chaîne à la méthode, nous utiliserons la classe LocalDateTime. Parce que valueOf() accepte un LocalDateTime en argument.

Dans le code suivant, dateTime a une date et une heure qui sont ensuite formatées en utilisant la méthode ofPatter() de la classe DateTimeFormatter. Nous pouvons utiliser ce formatteur pour analyser et obtenir un objet LocalDateTime en utilisant la fonction LocalDateTime.from().

Une fois que nous obtenons un objet LocalDateTime, nous pouvons le passer à Timestamp.valueOf(localDateTime) pour convertir la chaîne en un horodatage.

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);
    }
}

Production :

2020-10-01 06:43:21.0

Utilisez Date.getTime() pour convertir une chaîne de caractères en horodatage en Java

La deuxième méthode de conversion d’une chaîne en un horodatage utilise plusieurs classes et méthodes. Tout comme LocalDateTime, nous pouvons utiliser notre format de date et d’heure dans la chaîne. Nous avons utilisé la classe SimpleDateFormate() pour formater la chaîne et l’analyser pour obtenir un objet Date.

Nous avons besoin de l’objet Date car il possède l’objet getTime(), qui renvoie la date et l’heure sous forme de long. Nous pouvons passer cette valeur long au constructeur de Timestamp comme nous l’avons fait ci-dessous.

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);
    }
}

Production :

2020-01-10 06:43:21.0

Article connexe - Java DateTime

  • Obtenez la date d'aujourd'hui en Java
  • Comment obtenir la date et l'heure actuelles en Java