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

  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

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

Article connexe - Java DateTime

  • Comment convertir la date d'une chaîne en horodatage en Java