1. LocalDateTimeclasse

La LocalDateTimeclasse combine les capacités des classes LocalDateet LocalTime: elle stocke à la fois une date et une heure. Ses objets sont également immuables et ses méthodes sont similaires à celles des classes LocalDateet LocalTime.

Obtenir la date et l'heure actuelles

Tout est comme vous vous en doutez ici : nous utilisons la now()méthode. Exemple:

Code Sortie console
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

Now = 2019-02-22T09:49:19.275039200

Lorsqu'elles sont affichées à l'écran, la date et l'heure sont séparées par la lettre T.

Obtenir une date et une heure précises

Sans surprise, tout est similaire aux classes LocalDateet LocalTime— nous utilisons la of()méthode :

... = LocalDateTime.of(year, month, day, hours, minutes, seconds);

Tout d'abord, il existe des paramètres qui spécifient la date dans les mêmes formats que dans la LocalDateclasse. Ensuite, il y a des paramètres qui spécifient l'heure dans les mêmes formats que dans la LocalTimeclasse. Une liste de toutes les variantes de la of()méthode est donnée ci-dessous :

Méthodes
of (int year, int month, int day, int hour, int minute)
of (int year, int month, int day, int hour, int minute, int second)
of (int year, int month, int day, int hour, int minute, int second, int nano)
of (int year, Month month, int day, int hour, int minute)
of (int year, Month month, int day, int hour, int minute, int second)
of (int year, Month month, int day, int hour, int minute, int second, int nano)
of (LocalDate date, LocalTime time)

Vous pouvez définir la date directement ou la définir indirectement via les objets LocalDateet LocalTime:

Code
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime current = LocalDateTime.of(date, time);
System.out.println("Now = " + current);

LocalDateTime date = LocalDateTime.of(2019, Month.MAY, 15, 12, 15, 00);
System.out.println("Now = " + date);
Sortie console
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

La LocalDateTimeclasse a des méthodes pour obtenir des éléments d'une date et/ou d'une heure. Ils reflètent exactement les méthodes des classes LocalDateet LocalTime. Nous ne les répéterons pas ici.



2. Instantclasse

Les créateurs de Java n'ont pas non plus oublié les méthodes de la vieille école.

L'API Date Time inclut une classe Instant pour travailler avec l'heure destinée aux processus qui se produisent dans les ordinateurs. Au lieu d'heures, de minutes et de secondes, il s'agit de secondes, de millisecondes et de nanosecondes.

Cette classe a deux champs qui représentent :

  • le nombre de secondes qui se sont écoulées depuis le 1er janvier 1970
  • quelques nanosecondes

Le cours était-il fait pour les développeurs ? Oui. C'est pourquoi il calcule le temps en temps Unix, qui commence au début de 1970.

On pourrait même dire que la Instantclasse est une version simplifiée de la Dateclasse, ne retenant que ce dont les programmeurs ont besoin.

Vous pouvez obtenir un Instantobjet exactement de la même manière qu'un LocalTimeobjet :

Instant timestamp = Instant.now();

timestampest une Instantvariable et est un appel à la méthode statique de la classe.Instant.now()now()Instant

Exemple:

Code Sortie console
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

Vous pouvez également créer un nouvel objet en utilisant des variantes de la of()méthode en passant le temps écoulé depuis le 1er janvier 1970 :

ofEpochMilli(long milliseconds)
Vous devez passer le nombre de millisecondes
ofEpochSecond(long seconds)
Vous devez passer le nombre de secondes
ofEpochSecond(long seconds, long nanos)
Tu dois passer les secondes et les nanosecondes

Méthodes disponibles sur Instantles objets

La classe Instant a deux méthodes qui renvoient les valeurs de ses champs :

long getEpochSecond()
Nombre de secondes écoulées depuis le 1er janvier 1970
int getNano()
Nanosecondes.
long toEpochMilli()
Nombre de millisecondes écoulées depuis le 1er janvier 1970

Il existe également des méthodes pour créer un nouvel Instantobjet basé sur un existant :

Instant plusSeconds(long)
Ajoute des secondes à l'heure actuelle
Instant plusMillis(long)
Ajoute des millisecondes
Instant plusNanos(long)
Ajoute des nanosecondes
Instant minusSeconds(long)
Soustrait des secondes
Instant minusMillis(long)
Soustrait des millisecondes
Instant minusNanos(long)
Soustrait des nanosecondes

Exemples:

Code Sortie console
Instant timestamp = Instant.now();
System.out.println(timestamp);

long n = timestamp.toEpochMilli();
Instant time = Instant.ofEpochMilli(n);
System.out.println(time);

2019-02-22T09:01:20.535344Z



2019-02-22T09:01:20.535Z