Convertir une chaîne de caractères en objet DateTime en Java
-
Utilisez
SimpleDateFormat
etjava.util.Date
pour convertir une chaîne de date en un objet DateTime en Java - Utiliser la bibliothèque de dates et d’heures de Java 8 pour convertir une chaîne de date en format date-heure
-
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