Convertir une chaîne de caractères en objet DateTime en Java

Rupam Yadav 12 octobre 2023
  1. Utilisez SimpleDateFormat et java.util.Date pour convertir une chaîne de date en un objet DateTime en Java
  2. Utiliser la bibliothèque de dates et d’heures de Java 8 pour convertir une chaîne de date en format date-heure
  3. Utilisez joda-time pour convertir une chaîne de date en format date-heure
  4. Convertir une chaîne de date en Timestamp avec le constructeur Timestamp en Java
  5. Conversion de la chaîne de date en Timestamp avec LocalDate en Java
  6. Convertir la chaîne de date en Timestamp avec la méthode atStartOfDay() en Java
Convertir une chaîne de caractères en objet DateTime en Java

Cet article présente la manière dont nous pouvons convertir une chaîne de caractères donnée en un objet DateTime en utilisant différentes approches et exemples.

Utilisez SimpleDateFormat et java.util.Date pour convertir une chaîne de date en un objet DateTime en Java

SimpleDateFormat est une classe utilisée pour analyser et formater une date de manière sensible au niveau local. Elle nous permet de convertir une chaîne de caractères en DateTime et de convertir un objet DateTime en une chaîne de caractères.

Dans le code ci-dessous, nous utilisons la chaîne date_time, qui est analysée en appelant la méthode parse sur l’instance SimpleDateFormat dateParser. Le format dans lequel nous voulons que la chaîne date_time soit analysée est spécifié dans le constructeur de SimpleDateFormat.

Nous avons également créé une nouvelle instance de la classe SimpleDateFormat avec un format différent. La date analysée est alors formatée et imprimée.

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

Production :

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

Utiliser la bibliothèque de dates et d’heures de Java 8 pour convertir une chaîne de date en format date-heure

La classe LocaleDate représente une date au format ISO sans heure. La classe DateTimeFormatter est utilisée pour analyser les dates dans différents formats. Nous pouvons fournir des modèles personnalisés en appelant la méthode ofPattern() sur DateTimeFormatter.

La méthode LocaleDate a une méthode parse(), qui prend la chaîne de texte personnalisée et un formatteur spécifique inputFormat pour analyser et obtenir une instance LocalDate. L’instance LocaleDate obtenue date est ensuite formatée et imprimée comme sortie.

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

Production :

11/27/2020

Utilisez joda-time pour convertir une chaîne de date en format date-heure

joda-time est une bibliothèque standard DateTime qui fournit un ensemble de méthodes pour calculer la date et l’heure. La dépendance de maven pour inclure la fonctionnalité de cette bibliothèque est donnée ci-dessous.

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

DateTimeFormatter peut analyser des représentations personnalisées de la date et de l’heure.

Nous créons une instance de formatage datetimeformat avec un modèle personnalisé. En appelant parseDateTime sur l’instance de formatage, on obtient un objet DateTime utilisant la chaîne personnalisée dateTime.

Ici, nous avons créé une nouvelle instance de DateTimeFormatter dateTimeFormatOut avec un modèle personnalisé différent. La méthode print() est appelée sur la nouvelle instance qui imprime l’objet DateTime joda_time dans un nouveau format.

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

Production :

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

Convertir une chaîne de date en Timestamp avec le constructeur Timestamp en Java

Ici, nous utilisons le constructeur Timestamp pour obtenir un objet Timestamp. Tout d’abord, nous utilisons la classe SimpleDateFormat pour définir le format de la date et ensuite nous obtenons l’objet date en utilisant la méthode parser(), puis nous utilisons la méthode geteTime() pour ajouter l’heure avec la date et obtenir un timestamp comme résultat. Voir l’exemple ci-dessous.

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

Production:

 1990-10-12 00:00:00.0

Conversion de la chaîne de date en Timestamp avec LocalDate en Java

En Java 8, il ajoute un nouveau paquet java.time qui contient plusieurs classes pour traiter la date et l’heure. Ici, nous utilisons la classe LocalDate de ce paquet. Nous utilisons la méthode parse() de la classe LocalDate pour obtenir l’objet LocalDate à partir de la chaîne de date, puis nous utilisons la méthode atTime() pour obtenir l’objet LocalDateTime qui retourne une date avec l’heure. La méthode now() est utilisée pour obtenir l’heure actuelle du système.

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

Production:

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

Convertir la chaîne de date en Timestamp avec la méthode atStartOfDay() en Java

La méthode atStartOfDay() dans la classe LocalDate est également utilisée pour obtenir l’objet LocalDateTime. Cette méthode ajoute l’heure à la date de début de journée et retourne une “date-heure” plutôt qu’une simple date. Voir l’exemple ci-dessous.

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

Production:

2019-10-20T00:00
Auteur: Rupam Yadav
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

Article connexe - Java DateTime