Date et heure Java :SimpleDateFormat, date actuelle et comparaison
Dans ce tutoriel, vous apprendrez –
- Afficher la date actuelle en Java
- SimpleDateFormat :analyser et formater les dates
- Exemple de comparaison de dates
Comprenons d'abord les paramètres qui consistent en une date .
Il contiendra principalement –
- L'année (en 2 ou 4 chiffres)
- Le mois (en 2 chiffres, 3 premières lettres du mois ou le mot entier du mois).
- La date (il s'agira de la date réelle du mois).
- Le jour (le jour à la date donnée - comme dim, lundi, mar, etc.)
Concernant les systèmes informatiques, il y a pas mal de paramètres qui peuvent être utilisés pour associer une date. Nous les verrons dans les parties ultérieures de ce sujet.
Afficher la date en Java
Voyons maintenant comment Java nous fournit la date. Tout d'abord, nous verrons comment obtenir la date actuelle-
Java fournit une classe Date sous le package java.util. Le package fournit plusieurs méthodes pour jouer avec la date.
Vous pouvez utiliser l'objet Date en invoquant le constructeur de la classe Date comme suit :
import java.util.Date; class Date_Ex1 { public static void main(String args[]) { // Instantiate a Date object by invoking its constructor Date objDate = new Date(); // Display the Date & Time using toString() System.out.println(objDate.toString()); } }
Sortie :
Wed Nov 29 06:36:22 UTC 2017
Dans l'exemple ci-dessus, la date affichée dans le format par défaut, si nous voulons afficher la date et l'heure dans un autre format, comprenez d'abord le formatage de la date.
SimpleDateFormat :analyser et formater les dates
Vous devez tous avoir appris les alphabets dans votre jardin d'enfants….
Apprenons maintenant l'ABC du format de date.
Lettre | Composant de date ou d'heure | Exemples |
---|---|---|
G | Indicateur d'ère | ANNONCE |
y | Année | 2018 |
M | Mois de l'année | juillet ou juil ou 07 |
w | Semaine de l'année | 27 |
W | Semaine du mois | 2 |
D | Jour de l'année | 189 |
d | Jour du mois | 10 |
F | Jour de la semaine du mois | 2 |
E | Nom du jour de la semaine | mardi ou mar |
u | Numéro du jour de la semaine (1 =lundi, …, 7 =dimanche) | 1 |
un | Marqueur am/pm | MP |
H | Heure du jour (0-23) | 0 |
k | Heure du jour (1-24) | 24 |
K | Heure en am/pm (0-11) | 0 |
h | Heure en am/pm (1-12) | 12 |
m | Minute en heure | 30 |
s | Seconde en minute | 55 |
S | Milliseconde | 978 |
z | Fuseau horaire | Heure normale du Pacifique ; TVP; GMT-08:00 |
Z | Fuseau horaire | -0800 |
X | Fuseau horaire | -08 ou -0800 ou -08:00 |
Ne vous inquiétez pas, vous n'avez pas besoin de vous souvenir de tout cela, ils peuvent être consultés chaque fois que vous avez besoin de formater une date particulière.
Comment utiliser le SimpleDateFormat ?
Java fournit une classe appelée SimpleDateFormat qui vous permet de formater et d'analyser les dates selon vos besoins.
Vous pouvez utiliser les caractères ci-dessus pour spécifier le format-
Par exemple :
1) Format de date requis :2012.10.23 20:20:45 PST
Le format de date approprié spécifié sera- aaaa.MM.jj HH:mm:ss zzz
2) Format de date requis :09:30:00 23-mai-2012
Le format de date approprié spécifié sera-hh:mm:ss a jj-MMM-aaaa
Astuce : Attention à la casse des lettres. Si vous confondez M avec m, vous obtiendrez des résultats indésirables !
Apprenons cela avec un exemple de code.
import java.text.SimpleDateFormat; import java.util.Date; class TestDates_Format { public static void main(String args[]) { Date objDate = new Date(); // Current System Date and time is assigned to objDate System.out.println(objDate); String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is Specified SimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format object System.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date } }
Sortie :
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
Exemple de comparaison de dates
La méthode la plus utile pour comparer des dates consiste à utiliser la méthode - compareTo()
Jetons un coup d'œil à l'extrait de code ci-dessous-
import java.text.SimpleDateFormat; import java.text.ParseException; import java.util.Date; class TestDates_Compare { public static void main(String args[]) throws ParseException { SimpleDateFormat objSDF = new SimpleDateFormat("dd-mm-yyyy"); Date dt_1 = objSDF.parse("20-08-1981"); Date dt_2 = objSDF.parse("12-10-2012"); System.out.println("Date1 : " + objSDF.format(dt_1)); System.out.println("Date2 : " + objSDF.format(dt_2)); if (dt_1.compareTo(dt_2) > 0) { System.out.println("Date 1 occurs after Date 2"); } // compareTo method returns the value greater than 0 if this Date is after the Date argument. else if (dt_1.compareTo(dt_2) < 0) { System.out.println("Date 1 occurs before Date 2"); } // compareTo method returns the value less than 0 if this Date is before the Date argument; else if (dt_1.compareTo(dt_2) == 0) { System.out.println("Both are same dates"); } // compareTo method returns the value 0 if the argument Date is equal to the second Date; else { System.out.println("You seem to be a time traveller !!"); } } }
Sortie :
Date1 : 20-08-1981 Date2 : 12-10-2012 Date 1 occurs before Date 2
Java