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

// Créer 14:30:00
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

LocalTime time = LocalTime.of(15, 45, 20, 123456789);

<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 time1 = LocalTime.of(10, 30);
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

LocalTime time = LocalTime.of(9, 0);

// 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

LocalTime time = LocalTime.of(14, 30);

// 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

java LocalTime time = LocalTime.of(16, 45, 30);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String formattedTime = time.format(formatter); // "16:45:30"

2. Analyse des chaînes temporelles

Exemple

String timeString = "08:15:45 AM";
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 start = LocalTime.of(9, 0);
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 current = LocalTime.now();
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 start = LocalTime.of(8, 0);
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.

Autres extensions