5 fonctionnalités utiles de l’API de date et d’heure Java 8

En 2014, la sortie de Java 8 a introduit une nouvelle API de date et d'heure. Vous pouvez facilement accéder à cette API en important le package java.time .

Avec l'API de date et d'heure Java 8, les développeurs ont un accès facile aux dates, heures, fuseaux horaires, instants, durées et périodes. Ces fonctionnalités sont disponibles via une longue liste de classes dans le package java.time .

Dans ce didacticiel, vous découvrirez cinq fonctionnalités utiles de l'API de date et d'heure Java 8.

1. Obtenir votre heure locale

L'API de date et d'heure Java 8 est livrée avec une classe appelée LocalTime . Cette classe fournit une heure au format heure-minute-seconde .

Connexes : Que signifie l'API ? Exemples d'utilisation des API

Pour obtenir votre heure actuelle en utilisant cette classe, vous devrez d'abord créer un nouvel objet de la classe LocalTime . Transmettez-lui ensuite l'objet récupéré de la méthode now() . L'objet nouvellement créé stockera alors l'heure actuelle d'exécution du programme. En effet, la méthode now() récupère l'heure actuelle à partir de l'horloge système qui se trouve sur votre ordinateur.

Utilisation de l'exemple de classe LocalTime

 import java.time.LocalTime;

public class DateTimeAPI {
public static void main(String[] args) {
// create a new time object that stores the local time
LocalTime time = LocalTime.now();

System.out.println("The current hour is: " + time.getHour());
System.out.println("The current minute is: " + time.getMinute());
System.out.println("The current second is: " + time.getSecond());
System.out.println("The current time to the nanosecond is: " + time);
}
}

Le code ci-dessus accomplit plusieurs tâches simples en utilisant différentes méthodes LocalTime . L'exécution du code ci-dessus produit la sortie suivante dans la console.

 The current hour is: 10
The current minute is: 45
The current second is: 19
The current time to the nanosecond is: 10:45:19.324014300

2. Obtenez votre date locale

Vous pouvez obtenir votre date locale via l'API de date et d'heure Java 8, de la même manière que vous récupérez votre heure locale. La seule différence est que vous utilisez la classe LocalDate au lieu de la classe LocalTime .

Connexes : Apprenez à créer des classes en Java

La classe LocalDate utilise la structure année-mois-jour pour afficher la date système sur votre ordinateur, à l'aide de la méthode now() . La classe LocalDate donne accès à plus de 50 méthodes différentes, mais celles que vous pouvez utiliser le plus souvent sont les suivantes.

  • now() (ne prend aucun argument et renvoie la date actuelle)
  • getYear() (ne prend aucun argument et renvoie l'année en cours)
  • getMonth() (ne prend aucun argument et renvoie le mois en cours)
  • getDayOfWeek() (ne prend aucun argument et renvoie le jour de la semaine en cours)
  • getDayOfMonth() (ne prend aucun argument et renvoie le jour actuel du mois)
  • getDayOfYear() (ne prend aucun argument et renvoie le jour actuel de l'année)

Utilisation de l'exemple de classe LocalDate

 import java.time.LocalDate;

public class DateTimeAPI {
public static void main(String[] args) {
// create a new date object that stores the local date
LocalDate date = LocalDate.now();

System.out.println("The current year is: " + date.getYear());
System.out.println("The current month is: " + date.getMonth());
System.out.println("The current day of the week is: " + date.getDayOfWeek());
System.out.println("The current day of the Month is: " + date.getDayOfMonth());
System.out.println("The current day of the year is: " + date.getDayOfYear());
System.out.println("The current date is: " + date);
}
}

Le code ci-dessus produit la sortie suivante dans la console.

 The current year is: 2021
The current month is: SEPTEMBER
The current day of the week is: TUESDAY
The current day of the Month is: 14
The current day of the year is: 257
The current date is: 2021-09-14

3. Vérifiez si l'année en cours est une année bissextile

Parmi les nombreuses méthodes de la classe LocalDate se trouve la méthode isLeapYear() . Vous pouvez utiliser cette méthode pour vérifier si une année donnée est une année bissextile. Pour vérifier l'année en cours, vous pouvez créer un nouvel objet LocalDate avec la méthode now() et utiliser la méthode isLeapYear() sur l'objet nouvellement créé.

L'utilisation de la méthode isLeapYear() sur un objet LocalDate renverra une valeur booléenne, qui sera vraie si l'année est bissextile et fausse sinon.

Utilisation de l'exemple de méthode isLeapYear()

 import java.time.LocalDate;

public class DateTimeAPI {
public static void main(String[] args) {
// create an object to store the current date.
LocalDate date = LocalDate.now();

// check if the current year is a leap year.
boolean isLeap = date.isLeapYear();

// get the current year from the current date.
int year = date.getYear();

// tell the user if the current year is a leap year.
if (isLeap) {
System.out.println(year + " is a leap year.");
} else {
System.out.println(year + " is not a leap year.");
}
}
}

Le code ci-dessus produira la sortie suivante dans la console.

 
2021 is not a leap year.

4. Obtenez votre date et heure locales

Il existe une classe dans l'API de date et d'heure Java 8 appelée LocalDateTime . Comme son nom l'indique, vous pouvez utiliser cette classe pour obtenir la date et l'heure à votre emplacement actuel.

La classe a plusieurs méthodes importantes, mais la méthode now() peut être celle avec laquelle vous voulez vous familiariser en premier. La méthode now() de la classe LocalDateTime renvoie la date et l'heure de votre emplacement actuel. Il utilise la structure année-mois-jour T heure:minutes:secondes ; où la date apparaît en premier et un t majuscule la sépare de l'heure.

Utilisation de l'exemple de classe LocalDateTime

 import java.time.LocalDateTime;

public class DateTimeAPI {
public static void main(String[] args) {
// create a new date object that stores the local date
LocalDateTime dateTime = LocalDateTime.now();

// the current time
System.out.println("The current hour is: " + dateTime.getHour());
System.out.println("The current minute is: " + dateTime.getMinute());
System.out.println("The current second is: " + dateTime.getSecond());

// the current date
System.out.println("The current year is: " + dateTime.getYear());
System.out.println("The current month is: " + dateTime.getMonth());
System.out.println("The current day of the week is: " + dateTime.getDayOfWeek());
System.out.println("The current day of the Month is: " + dateTime.getDayOfMonth());
System.out.println("The current day of the year is: " + dateTime.getDayOfYear());

// the current date and time
System.out.println("The current date and time is: " + dateTime);
}
}

Le code ci-dessus produit la sortie suivante dans la console.

 The current hour is: 11
The current minute is: 9
The current second is: 30
The current year is: 2021
The current month is: SEPTEMBER
The current day of the week is: TUESDAY
The current day of the Month is: 14
The current day of the year is: 257
The current date and time is: 2021-09-14T11:09:30.009675800

Comme vous pouvez le voir dans la sortie ci-dessus, la classe LocalDateTime peut générer une combinaison de date et d'heure, ainsi que les valeurs individuelles (telles que le mois en cours), que vous pouvez obtenir à partir des classes LocalDate et LocalTime.

5. Obtenez la date et l'heure actuelles d'un emplacement en utilisant son fuseau horaire

Comme vous l'avez vu jusqu'à présent, l'API de date et d'heure Java 8 possède de nombreuses fonctionnalités utiles. Un autre élément utile est sa capacité à obtenir le fuseau horaire de votre emplacement actuel, ou la date et l'heure d'un emplacement en utilisant son fuseau horaire.

Utilisation de l'exemple de classe ZonedDateTime

 import java.time.ZoneId;
import java.time.ZonedDateTime;

public class DateTimeAPI {
public static void main(String[] args) {
// create a new object to store your local date, time, and time-zone.
ZonedDateTime zDateTime = ZonedDateTime.now();

// create a zoneId object to store your local time-zone
ZoneId localTimeZone = zDateTime.getZone();

// create a new zoneId object to store the zoneId provided by the user
ZoneId newZoneId = ZoneId.of("GMT-03:00");

// create an object to store the current date, time, and time-zone
// retrieved using the zoneId provide by the user
ZonedDateTime newLocation = ZonedDateTime.now(newZoneId);

System.out.println("The date, time, and time-zone at your current location is: " + zDateTime);
System.out.println("The time-zone at your current location is: " + localTimeZone);
System.out.println("The date, time, and time-zone at the new time-zone is: " + newLocation );
}
}

Il se passe beaucoup de choses dans le code ci-dessus. Comme les classes précédentes, la classe ZoneDateTime utilise la méthode now() , qui dans ce cas renvoie un objet avec la date, l'heure et le fuseau horaire actuels.

Cependant, contrairement aux exemples précédents, la classe ZoneDateTime prend un fuseau horaire de l'utilisateur et renvoie la date et l'heure appropriées.

Le code ci-dessus produira la sortie suivante dans la console.

 The date, time, and time-zone at your current location is: 2021-09-14T15:00:17.029010300-05:00[GMT-05:00]
The time-zone at your current location is: GMT-05:00
The date, time, and time-zone at the new time-zone is: 2021-09-14T17:00:17.042989-03:00[GMT-03:00]

Comme vous pouvez le voir sur la sortie ci-dessus, le fuseau horaire GMT-03:00 a deux heures d'avance sur le fuseau horaire GMT-05:00.

En savoir plus sur les API

Dans ce didacticiel, vous avez découvert les cinq principales fonctionnalités fournies avec l'API de date et d'heure Java 8. Cette liste n'est en aucun cas complète et vous pouvez explorer d'autres fonctionnalités de l'API.

Cependant, si vous êtes curieux de savoir comment les API fonctionnent en général, il existe également des ressources pour vous aider.