Java Date et heure

Comprenons d'abord les paramรจtres qui constituent un Date.

Comment utiliser la date dans Java

Il contiendra principalement โ€“

  • Le une annรฉe (en 2 ou 4 chiffres)
  • Le mois (en 2 chiffres, les 3 premiรจres lettres du mois ou le mot entier du mois).
  • Le donnรฉes (ce sera la date rรฉelle du mois).
  • Le journรฉe (le jour ร  la date indiquรฉe โ€“ comme dimanche, lundi, mardi, etc.)

Concernant les systรจmes informatiques, il existe pas mal de paramรจtres qui peuvent รชtre utilisรฉs pour associer une date. Nous les verrons dans les derniรจres parties de ce sujet.

Afficher la date dans Java

Voyons maintenant comment Java fournissez-nous 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 appelant 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 au format par dรฉfaut. Si nous souhaitons 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 maternelleโ€ฆ.

Apprenons maintenant l'ABC du format de date.

Lettre Composant Date ou Heure Exemples
G Dรฉsignateur d'รจre AD
y Annรฉe 2018
M Mois dans l'annรฉe Juillet ou juillet ou 07
w Semaine dans l'annรฉe 27
W Semaine dans le mois 2
D Jour dans l'annรฉe 189
d Jour dans le mois 10
F Jour de la semaine dans le mois 2
E Nom du jour dans la semaine mardi ou mardi
u Jour numรฉro de la semaine (1 = Monday, โ€ฆ, 7 = dimanche) 1
a Marqueur am/pm PM
H Heure dans la journรฉe (0-23) 0
k Heure dans la journรฉe (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 Standard du Pacifique; TVP; GMT-08:00
Z fuseau horaire - 0800
X fuseau horaire -08 ou -0800 ou -08h00

Ne vous inquiรฉtez pas, vous n'avez pas besoin de vous souvenir de tous ces รฉlรฉments, ils peuvent รชtre consultรฉs ร  chaque fois que vous avez besoin de formater une date particuliรจre.

Comment utiliser 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 AM 23-May-2012

Le format de date appropriรฉ spรฉcifiรฉ sera-hh:mm:ss a jj-MMM-aaaa

Astuce: Soyez prudent avec la majuscule 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

Exemple de comparaison de dates

La mรฉthode la plus utile pour comparer les 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

Rรฉsumez cet article avec :