Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Java - Date et heure

Java fournit la date classe disponible dans java.util package, cette classe encapsule la date et l'heure actuelles.

La classe Date prend en charge deux constructeurs, comme indiqué dans le tableau suivant.

Date( )

Ce constructeur initialise l'objet avec la date et l'heure actuelles.

Date (long millisec)

Ce constructeur accepte un argument égal au nombre de millisecondes qui se sont écoulées depuis minuit le 1er janvier 1970.

Sr.No. Constructeur et description
1
2

Voici les méthodes de la classe de date.

booléen après (Date date)

Renvoie vrai si l'objet Date appelant contient une date postérieure à celle spécifiée par date, sinon, il renvoie faux.

booléen avant(Date date)

Renvoie vrai si l'objet Date appelant contient une date antérieure à celle spécifiée par date, sinon, il renvoie faux.

Clone d'objet( )

Duplique l'objet Date appelant.

int compareTo(Date date)

Compare la valeur de l'objet appelant avec celle de date. Renvoie 0 si les valeurs sont égales. Renvoie une valeur négative si l'objet appelant est antérieur à date. Renvoie une valeur positive si l'objet appelant est postérieur à la date.

int compareTo(Object obj)

Fonctionne de manière identique à compareTo(Date) si obj est de classe Date. Sinon, il lève une ClassCastException.

booléen égal à (date de l'objet)

Renvoie vrai si l'objet Date appelant contient la même heure et la même date que celle spécifiée par date, sinon, il renvoie faux.

long getTime( )

Renvoie le nombre de millisecondes écoulées depuis le 1er janvier 1970.

int hashCode( )

Renvoie un code de hachage pour l'objet appelant.

annuler setTime (long temps)

Définit l'heure et la date comme spécifié par time, qui représente un temps écoulé en millisecondes à partir de minuit, le 1er janvier 1970.

Chaîne versChaîne( )

Convertit l'objet Date appelant en une chaîne et renvoie le résultat.

Sr.No. Méthode et description
1
2
3
4
5
6
7
8
9
10

Obtenir la date et l'heure actuelles

C'est une méthode très simple pour obtenir la date et l'heure actuelles en Java. Vous pouvez utiliser un simple objet Date avec toString() méthode pour imprimer la date et l'heure actuelles comme suit −

Exemple

Démo en direct
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();

      // display time and date using toString()
      System.out.println(date.toString());
   }
}

Cela produira le résultat suivant −

Sortie

on May 04 09:51:52 CDT 2009

Comparaison des dates

Voici les trois façons de comparer deux dates −

Formatage de la date à l'aide de SimpleDateFormat

SimpleDateFormat est une classe concrète pour le formatage et l'analyse des dates d'une manière sensible aux paramètres régionaux. SimpleDateFormat vous permet de commencer par choisir n'importe quel modèle défini par l'utilisateur pour le formatage de la date et de l'heure.

Exemple

Démo en direct
import java.util.*;
import java.text.*;

public class DateDemo {

   public static void main(String args[]) {
      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

      System.out.println("Current Date: " + ft.format(dNow));
   }
}

Cela produira le résultat suivant −

Sortie

Current Date: Sun 2004.07.18 at 04:14:09 PM PDT

Codes de format de format de date simples

Pour spécifier le format d'heure, utilisez une chaîne de modèle d'heure. Dans ce modèle, toutes les lettres ASCII sont réservées en tant que lettres de modèle, qui sont définies comme suit −

Caractère Description Exemple
G Indicateur d'ère ANNONCE
y Année en quatre chiffres 2001
M Mois de l'année Juillet ou 07
d Jour du mois 10
h Heure en A.M./P.M. (1~12) 12
H Heure du jour (0~23) 22
m Minute en heure 30
s Seconde en minute 55
S Milliseconde 234
E Jour de la semaine mardi
D Jour de l'année 360
F Jour de la semaine du mois 2 (deuxième mer. de juillet)
w Semaine de l'année 40
W Semaine du mois 1
un AM/PM marqueur MP
k Heure dans la journée (1~24) 24
K Heure en A.M./P.M. (0~11) 10
z Fuseau horaire Heure normale de l'Est
' Échappement pour le texte Séparateur
" Avis simples `

Formatage de la date à l'aide de printf

Le formatage de la date et de l'heure peut être fait très facilement en utilisant printf méthode. Vous utilisez un format à deux lettres, commençant par t et se terminant par l'une des lettres du tableau comme indiqué dans le code suivant.

Exemple

Démo en direct
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();

      // display time and date
      String str = String.format("Current Date/Time : %tc", date );

      System.out.printf(str);
   }
}

Cela produira le résultat suivant −

Sortie

Current Date/Time : Sat Dec 15 16:37:57 MST 2012

Ce serait un peu idiot si vous deviez fournir la date plusieurs fois pour formater chaque partie. Pour cette raison, une chaîne de format peut indiquer l'index de l'argument à formater.

L'index doit suivre immédiatement le % et se terminer par un $.

Exemple

Démo en direct
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();
  
      // display time and date
      System.out.printf("%1$s %2$tB %2$td, %2$tY", "Due date:", date);
   }
}

Cela produira le résultat suivant −

Sortie

Due date: February 09, 2004

Alternativement, vous pouvez utiliser le drapeau <. Cela indique que le même argument que dans la spécification de format précédente doit être utilisé à nouveau.

Exemple

Démo en direct
import java.util.Date;
public class DateDemo {

   public static void main(String args[]) {
      // Instantiate a Date object
      Date date = new Date();
  
      // display formatted date
      System.out.printf("%s %tB %<te, %<tY", "Due date:", date);
   }
}

Cela produira le résultat suivant −

Sortie

Due date: February 09, 2004

Caractères de conversion de date et d'heure

Caractère Description Exemple
c Date et heure complètes Lun 04 mai 09:51:52 CDT 2009
F Date ISO 8601 2004-02-09
D États-Unis date formatée (mois/jour/année) 02/09/2004
T Heure de 24 heures 18:05:19
r Heure de 12 heures 18:05:19
R Heure de 24 heures, pas de secondes 18:05
O Année à quatre chiffres (avec des zéros non significatifs) 2004
y Deux derniers chiffres de l'année (avec des zéros non significatifs) 04
C Deux premiers chiffres de l'année (avec des zéros non significatifs) 20
B Nom complet du mois Février
b Nom abrégé du mois février
m Mois à deux chiffres (avec des zéros non significatifs) 02
d Jour à deux chiffres (avec des zéros non significatifs) 03
e Jour à deux chiffres (sans zéros non significatifs) 9
A Nom complet du jour de la semaine Lundi
un Nom abrégé du jour de la semaine Lun
j Jour de l'année à trois chiffres (avec des zéros non significatifs) 069
H Heure à deux chiffres (avec des zéros non significatifs), entre 00 et 23 18
k Heure à deux chiffres (sans zéros non significatifs), entre 0 et 23 18
Je Heure à deux chiffres (avec des zéros non significatifs), entre 01 et 12 06
l Heure à deux chiffres (sans zéros non significatifs), entre 1 et 12 6
M Minutes à deux chiffres (avec des zéros non significatifs) 05
S Secondes à deux chiffres (avec des zéros non significatifs) 19
L Millisecondes à trois chiffres (avec des zéros non significatifs) 047
N Nanosecondes à neuf chiffres (avec des zéros non significatifs) 047000000
P Marqueur majuscule du matin ou de l'après-midi PM
p Marqueur du matin ou de l'après-midi en minuscules pm
z Décalage numérique RFC 822 par rapport à GMT -0800
Z Fuseau horaire PST
s Secondes depuis le 1970-01-01 00:00:00 GMT 1078884319
Q Millisecondes depuis le 1970-01-01 00:00:00 GMT 1078884319047

Il existe d'autres classes utiles liées à la date et à l'heure. Pour plus de détails, vous pouvez vous référer à la documentation Java Standard.

Analyse des chaînes en dates

La classe SimpleDateFormat possède quelques méthodes supplémentaires, notamment parse(), qui tente d'analyser une chaîne en fonction du format stocké dans l'objet SimpleDateFormat donné.

Exemple

Démo en direct
import java.util.*;
import java.text.*;
  
public class DateDemo {

   public static void main(String args[]) {
      SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); 
      String input = args.length == 0 ? "1818-11-11" : args[0]; 

      System.out.print(input + " Parses as "); 
      Date t;
      try {
         t = ft.parse(input); 
         System.out.println(t); 
      } catch (ParseException e) { 
         System.out.println("Unparseable using " + ft); 
      }
   }
}

Un exemple d'exécution du programme ci-dessus produirait le résultat suivant −

Sortie

1818-11-11 Parses as Wed Nov 11 00:00:00 EST 1818

Dormir un moment

Vous pouvez dormir pendant n'importe quelle période allant d'une milliseconde jusqu'à la durée de vie de votre ordinateur. Par exemple, le programme suivant dormirait pendant 3 secondes −

Exemple

Démo en direct
import java.util.*;
public class SleepDemo {

   public static void main(String args[]) {
      try { 
         System.out.println(new Date( ) + "\n"); 
         Thread.sleep(5*60*10); 
         System.out.println(new Date( ) + "\n"); 
      } catch (Exception e) {
         System.out.println("Got an exception!"); 
      }
   }
}

Cela produira le résultat suivant −

Sortie

Sun May 03 18:04:41 GMT 2009
Sun May 03 18:04:51 GMT 2009

Mesurer le temps écoulé

Parfois, vous devrez peut-être mesurer un point dans le temps en millisecondes. Alors réécrivons l'exemple ci-dessus une fois de plus −

Exemple

Démo en direct
import java.util.*;
public class DiffDemo {

   public static void main(String args[]) {
      try {
         long start = System.currentTimeMillis( );
         System.out.println(new Date( ) + "\n");
         
         Thread.sleep(5*60*10);
         System.out.println(new Date( ) + "\n");
         
         long end = System.currentTimeMillis( );
         long diff = end - start;
         System.out.println("Difference is : " + diff);
      } catch (Exception e) {
         System.out.println("Got an exception!");
      }
   }
}

Cela produira le résultat suivant −

Sortie

Sun May 03 18:16:51 GMT 2009
Sun May 03 18:16:57 GMT 2009
Difference is : 5993

Classe GregorianCalendar

GregorianCalendar est une implémentation concrète d'une classe Calendar qui implémente le calendrier grégorien normal avec lequel vous êtes familier. Nous n'avons pas abordé la classe Calendar dans ce didacticiel, vous pouvez consulter la documentation Java standard pour cela.

Le getInstance( ) La méthode Calendar renvoie un GregorianCalendar initialisé avec la date et l'heure actuelles dans les paramètres régionaux et le fuseau horaire par défaut. GregorianCalendar définit deux champs :AD et BC. Celles-ci représentent les deux époques définies par le calendrier grégorien.

Il existe également plusieurs constructeurs pour les objets GregorianCalendar −

Calendrier grégorien()

Construit un calendrier grégorien par défaut en utilisant l'heure actuelle dans le fuseau horaire par défaut avec les paramètres régionaux par défaut.

GregorianCalendar(int année, int mois, int date)

Construit un calendrier grégorien avec la date donnée définie dans le fuseau horaire par défaut avec les paramètres régionaux par défaut.

GregorianCalendar(int année, int mois, int date, int heure, int minute)

Construit un calendrier grégorien avec la date et l'heure définies pour le fuseau horaire par défaut avec les paramètres régionaux par défaut.

GregorianCalendar(int année, int mois, int date, int heure, int minute, int seconde)

Construit un calendrier grégorien avec la date et l'heure définies pour le fuseau horaire par défaut avec les paramètres régionaux par défaut.

GrégorienCalendrier(Locale aLocale)

Construit un GregorianCalendar basé sur l'heure actuelle dans le fuseau horaire par défaut avec les paramètres régionaux donnés.

Calendrier grégorien (fuseau horaire)

Construit un calendrier grégorien basé sur l'heure actuelle dans le fuseau horaire donné avec les paramètres régionaux par défaut.

GrégorienCalendrier(Fuseau horaire, Locale aLocale)

Construit un calendrier grégorien basé sur l'heure actuelle dans le fuseau horaire donné avec les paramètres régionaux donnés.

Sr.No. Constructeur et description
1
2
3
4
5
6
7

Voici la liste des quelques méthodes de support utiles fournies par la classe GregorianCalendar −

annuler l'ajout (champ int, montant int)

Ajoute la durée spécifiée (signée) au champ de temps donné, en fonction des règles du calendrier.

protected void computeFields()

Convertit l'UTC en millisecondes en valeurs de champ de temps.

protected void computeTime()

Remplace le calendrier Convertit les valeurs de champ de temps en UTC en millisecondes.

booléen égal à(Object obj)

Compare ce GregorianCalendar à une référence d'objet.

int obtenir(champ int)

Obtient la valeur d'un champ de temps donné.

int getActualMaximum(champ int)

Renvoie la valeur maximale que ce champ peut avoir, compte tenu de la date actuelle.

int getActualMinimum(champ int)

Renvoie la valeur minimale que ce champ pourrait avoir, compte tenu de la date actuelle.

int getGreatestMinimum(int field)

Renvoie la valeur minimale la plus élevée pour le champ donné si varie.

Date getGregorianChange()

Obtient la date de changement du calendrier grégorien.

int getLeastMaximum(int field)

Renvoie la valeur maximale la plus basse pour le champ donné si varie.

int getMaximum(champ int)

Renvoie la valeur maximale pour le champ donné.

Date getTime()

Obtient l'heure actuelle de ce calendrier.

long getTimeInMillis()

Obtient l'heure actuelle de ce calendrier sous la forme d'un long.

Fuseau horaire getTimeZone()

Obtient le fuseau horaire.

int getMinimum(champ int)

Renvoie la valeur minimale pour le champ donné.

int hashCode()

Remplace hashCode.

booléen isLeapYear(int année)

Détermine si l'année donnée est une année bissextile.

void roll(int field, boolean up)

Ajoute ou soustrait (haut/bas) une seule unité de temps sur le champ de temps donné sans modifier les champs plus grands.

void set(int field, int value)

Définit le champ de temps avec la valeur donnée.

void set(int année, int mois, int date)

Définit les valeurs des champs année, mois et date.

void set(int année, int mois, int date, int heure, int minute)

Définit les valeurs des champs année, mois, date, heure et minute.

void set(int année, int mois, int date, int heure, int minute, int seconde)

Définit les valeurs des champs année, mois, date, heure, minute et seconde.

annuler setGregorianChange(Date date)

Définit la date de modification du calendrier grégorien.

annuler setTime(Date date)

Définit l'heure actuelle de ce calendrier avec la date donnée.

annuler setTimeInMillis(long millis)

Définit l'heure actuelle de ce calendrier à partir de la valeur longue donnée.

annuler setTimeZone (valeur TimeZone)

Définit le fuseau horaire avec la valeur de fuseau horaire donnée.

Chaîne àChaîne()

Renvoie une représentation sous forme de chaîne de ce calendrier.

Sr.No. Méthode et description
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

Exemple

Démo en direct
import java.util.*;
public class GregorianCalendarDemo {

   public static void main(String args[]) {
      String months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", 
         "Oct", "Nov", "Dec"};
      
      int year;
      // Create a Gregorian calendar initialized
      // with the current date and time in the
      // default locale and timezone.
      
      GregorianCalendar gcalendar = new GregorianCalendar();
      
      // Display current time and date information.
      System.out.print("Date: ");
      System.out.print(months[gcalendar.get(Calendar.MONTH)]);
      System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
      System.out.println(year = gcalendar.get(Calendar.YEAR));
      System.out.print("Time: ");
      System.out.print(gcalendar.get(Calendar.HOUR) + ":");
      System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
      System.out.println(gcalendar.get(Calendar.SECOND));

      // Test if the current year is a leap year
      if(gcalendar.isLeapYear(year)) {
         System.out.println("The current year is a leap year");
      }else {
         System.out.println("The current year is not a leap year");
      }
   }
}

Cela produira le résultat suivant −

Sortie

Date: Apr 22 2009
Time: 11:25:27
The current year is not a leap year

Pour une liste complète des constantes disponibles dans la classe Calendar, vous pouvez vous référer à la documentation Java standard.


Java

  1. Classe et objet C#
  2. Comment obtenir la date et l'heure actuelles en Python ?
  3. Variables et littéraux Java
  4. Classe et objets Java
  5. Classe abstraite Java et méthodes abstraites
  6. Classe imbriquée et interne Java
  7. Classe Java Singleton
  8. Java lancer et lancer
  9. Autoboxing et déballage Java