Classe Java LocalTime
LocalTimeest une classe importante dans l'API date-time introduite dans Java 8 (java.timepackage), qui est utilisée pour représenter l'heure sans information de fuseau horaire. Il gère spécifiquement l'heure du jour, avec une précision à la nanoseconde.
Fonctionnalités de la classe LocalTime
1. Immuabilité
LocalTime est une classe immuable. Toutes les opérations de modification renvoient une nouvelle instance, et l'objet d'origine reste inchangé.
2. Aucune information sur le fuseau horaire
LocalTime ne contient pas d'informations sur le fuseau horaire ; elle ne représente que l'heure locale.
3. Précision temporelle
Prend en charge une précision temporelle allant des heures aux nanosecondes (HH:mm:ss.nnnnnnnnn).
Création d'objets LocalTime
1. Obtention de l'heure actuelle
LocalTime currentTime = LocalTime.now();
System.out.println("当前时间: " + currentTime);
2. Création à l'aide de la méthode of()
Exemple
LocalTime time1 = LocalTime.of(14, 30);
// Créer 09:15:30
LocalTime time2 = LocalTime.of(9, 15, 30);
// Créer 10:20:30.500 (500 millisecondes)
LocalTime time3 = LocalTime.of(10, 20, 30, 500000000);
3. Analyse de chaînes
LocalTime parsedTime = LocalTime.parse("08:45");
System.out.println("解析的时间: " + parsedTime);
Méthodes courantes
1. Obtention des composants de temps
Exemple
<p>int hour = time.getHour(); // 15
int minute = time.getMinute(); // 45
int second = time.getSecond(); // 20
int nano = time.getNano(); // 123456789
2. Comparaison de temps
Exemple
LocalTime time2 = LocalTime.of(11, 15);
boolean isBefore = time1.isBefore(time2); // true
boolean isAfter = time1.isAfter(time2); // false
boolean isEqual = time1.equals(time2); // false
3. Arithmétique temporelle
Exemple
// Ajouter 2 heures
LocalTime plusHours = time.plusHours(2); // 11:00
// Soustraire 30 minutes
LocalTime minusMinutes = time.minusMinutes(30); // 08:30
// Ajouter 1 heure et 15 minutes
LocalTime plusDuration = time.plus(Duration.ofMinutes(75)); // 10:15
4. Ajustement de l'heure
Exemple
// Définir l'heure à 10
LocalTime withHour = time.withHour(10); // 10:30
// Définir la minute à 45
LocalTime withMinute = time.withMinute(45); // 14:45
Formatage et analyse
1. Formatage de l'heure
Exemple
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String formattedTime = time.format(formatter); // "16:45:30"
2. Analyse des chaînes temporelles
Exemple
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm:ss a");
LocalTime parsedTime = LocalTime.parse(timeString, formatter);
Exemples d'applications pratiques
1. Calcul de l'intervalle entre deux points temporels
Exemple
LocalTime end = LocalTime.of(17, 30);
Duration duration = Duration.between(start, end);
System.out.println("Heures de travail : " + duration.toHours() + " heures"); // 8 heures
2. Vérification si l'heure est comprise dans les heures ouvrables
Exemple
LocalTime opening = LocalTime.of(8, 0);
LocalTime closing = LocalTime.of(22, 0);
if (current.isAfter(opening) && current.isBefore(closing)) {
System.out.println("Le magasin est ouvert");
} else {
System.out.println("Le magasin est fermé");
}
3. Création d'une plage horaire
Exemple
LocalTime end = start.plusHours(8); // 16:00
System.out.println("Heures d'ouverture : " + start + " à " + end);
Résumé
LocalTimeest une classe centrale de l'API date-heure de Java 8 pour la gestion de l'heure locale. Elle fournit de nombreuses méthodes pour créer, manipuler et formater l'heure. En raison de son immuabilité et de sa sécurité des threads,LocalTimeelle est très adaptée à une utilisation dans des environnements multithread. MaîtriserLocalTimel'utilisation de cette classe peut grandement simplifier les tâches de programmation liées au temps.