codestory

Die Anleitung zu Java LocalTime

  1. LocalTime
  2. Static Factory Methods
  3. isAfter(..), isBefore(..)
  4. format(DateTimeFormatter)
  5. getX() *
  6. get(TemporalField)
  7. getLong(TemporalField)
  8. plusX(..) *
  9. plus(TemporalAmount)
  10. plus(long, TemporalUnit)
  11. minusX(..) *
  12. minus(TemporalAmount)
  13. minus(long, TemporalUnit)
  14. withX(..) *
  15. with(TemporalAdjuster)
  16. with(TemporalField, long)
  17. adjustInto(Temporal)
  18. atDate(LocalDate)
  19. atOffset(ZoneOffset)
  20. toX(..) *
  21. until(Temporal, TemporalUnit)
  22. truncatedTo(TemporalUnit)
  23. range(TemporalField)
  24. query(TemporalQuery<R>)
  25. isSupported(TemporalField)
  26. isSupported(TemporalUnit)

1. LocalTime

Die Klasse LocalTime repräsentiert die Ortszeit. Es enthält keine Informationen zu Datum und Zeitzone. LocalTime umfasst Stunden, Minuten, Sekunden, sogar Nanosekunden (1 Sekunde = 1 Milliarde Nanosekunden).
  • Java 8 Date Time API Overview
Die Klasse LocalTime befindet sich im Paket java.time. Genau wie andere Klassen, die in Java 8 Date Time API eingeführt wurden, ist LocalTime unveränderlich, was bedeutet, dass alle Berechnungen für LocalTime ein neues Objekt LocalTime erstellen, sodass es sicher ist, wenn es in Umgebungen multithreading verwendet wird.
public final class LocalTime
        implements Temporal, TemporalAdjuster, Comparable<LocalTime>, Serializable

2. Static Factory Methods

Die Klasse LocalTime stellt keinen Konstruktor bereit, bietet jedoch statische Factory-Methoden zum Erstellen neuer Objekte:
public static LocalTime now()

public static LocalTime now(ZoneId zone)

public static LocalTime now(Clock clock)  

public static LocalTime of(int hour, int minute)

public static LocalTime of(int hour, int minute, int second)

public static LocalTime of(int hour, int minute, int second, int nanoOfSecond)

public static LocalTime ofInstant(Instant instant, ZoneId zone)

public static LocalTime ofSecondOfDay(long secondOfDay)  

public static LocalTime ofNanoOfDay(long nanoOfDay)

public static LocalTime from(TemporalAccessor temporal)

public static LocalTime parse(CharSequence text)  

public static LocalTime parse(CharSequence text, DateTimeFormatter formatter)
Erstellen Sie ein Objekt LocalTime, das die aktuelle Uhrzeit aus der Systemuhr und der Standardzeitzone darstellt (auf Ihrem Computer).
// Current time from the system clock in the default time-zone.
LocalTime localTime = LocalTime.now();
System.out.println("localTime: " + localTime);
Erstellen Sie ein Objekt LocalTime, das die aktuelle Uhrzeit einer angegebenen Uhr darstellt:
// Clock from system default zone
Clock clockDefault = Clock.systemDefaultZone();

Clock clock = Clock.system(ZoneId.of("Europe/Paris"));

// Current time from the specified clock.
LocalTime localTime = LocalTime.now(clock);
System.out.println("localTime: " + localTime); // 19:51:11.990871 (Example)
  • Die Anleitung zu Java Clock
Erstellen Sie ein Objekt LocalTime , das die aktuelle Zeit aus einer angegebenen ZoneId darstellt:
// System default zone
ZoneId zoneIdDefault = ZoneId.systemDefault();

ZoneId zoneId = ZoneId.of("Australia/Sydney");
LocalTime localTime = LocalTime.now(zoneId);

System.out.println("Now is: " + localTime); // 03:56:06.006877 (Example)
Erstellen Sie ein Objekt LocalTime aus den angegebenen hour, minute, second, nanoOfSecond -Werten:
// of(int hour, int minute, int second, int nanoOfSecond)
LocalTime localTime1 = LocalTime.of(13, 10, 20, 12345);  
System.out.println("localTime1: " + localTime1); // 13:10:20.000012345

// of(int hour, int minute, int second)
LocalTime localTime2 = LocalTime.of(13, 10, 20);
System.out.println("localTime2: " + localTime2); // 13:10:20

// of(int hour, int minute)
LocalTime localTime3 = LocalTime.of(13, 10);
System.out.println("localTime3: " + localTime3); // 13:10
Erstellen Sie ein Objekt LocalTime mit den angegebenen Objekte Instant und ZoneId:
LocalTime_ofInstant_ex1.java
// ofInstant(Instant instant, ZoneId zone)
Instant instant = Instant.now();
ZoneId zoneId = ZoneId.systemDefault();

LocalTime localTime = LocalTime.ofInstant(instant, zoneId);
System.out.println("localTime: " + localTime);
  • Die Anleitung zu Java Instant
Erstellen Sie ein Objekt LocalTime, indem Sie einen datumsformatierten Text analysieren:
// parse(CharSequence text)  
LocalTime localTime1 = LocalTime.parse("10:15:30"); // 10:15:30
System.out.println("localTime1: " + localTime1);

// parse(CharSequence text, DateTimeFormatter formatter)
DateTimeFormatter fmt2 = DateTimeFormatter.ofPattern("HH:mm");

LocalTime localTime2 = LocalTime.parse("13:15", fmt2); // 13:15
System.out.println("localTime2: " + localTime2);
  • Die Anleitung zu Java DateTimeFormatter
  • Java Date Time Format Pattern
Erstellen Sie ein Objekt LocalTime aus einem angegebenen Objekt TemporalAccessor.
// from(TemporalAccessor temporal)
TemporalAccessor nowDatetime = LocalDateTime.now();
System.out.println("LocalDateTime.now(): " + nowDatetime);

LocalTime nowTime = LocalTime.from(nowDatetime);
System.out.println("nowTime: " + nowTime);

3. isAfter(..), isBefore(..)

Die Methode isBefore(LocalTime) wird verwendet, um zu überprüfen, ob dieses Objekt LocalTime vor einem anderen gegebenen Objekt LocalTime liegt.
Die Methode isAfter(LocalTime) wird verwendet, um zu überprüfen, ob dieses Objekt LocalDate nach einem anderen gegebenen Objekt LocalTime liegt.
public boolean isAfter(LocalTime other)  

public boolean isBefore(LocalTime other)
localTime1 is before localTime2.
Zum Beispiel:
LocalTime_isBefore_isAfter_ex1.java
package org.o7planning.localtime.ex;

import java.time.LocalTime;

public class LocalTime_isBefore_isAfter_ex1 {

    public static void main(String[] args) {
        LocalTime localTime1 = LocalTime.parse("10:20"); // 10:20
        LocalTime localTime2 = LocalTime.parse("21:15:30.12345"); // 21:15:30.123450
        
        
        System.out.println("localTime1: " + localTime1); // 10:20
        System.out.println("localTime2: " + localTime2); // 21:15:30.123450
        System.out.println();
        
        System.out.println("localTime1.isBefore(localTime2): " + localTime1.isBefore(localTime2)); // true
        System.out.println("localTime1.isAfter(localTime2): " + localTime1.isAfter(localTime2)); // false  
    }
}
Output:
localTime1: 10:20
localTime2: 21:15:30.123450

localTime1.isBefore(localTime2): true
localTime1.isAfter(localTime2): false

4. format(DateTimeFormatter)

Formatieren Sie dieses Objekt LocalTime mit einem angegebenen DateTimeFormatter.
public String format(DateTimeFormatter formatter)
Zum Beispiel:
LocalTime_format_ex1.java
LocalTime localTime = LocalTime.parse("10:15:30.12345");  
System.out.println("localTime: " + localTime); // 10:15:30.123450
System.out.println();

// '10:15', '10:15:30' or '10:15:30+01:00'.
DateTimeFormatter fmt1 = DateTimeFormatter.ISO_TIME;  
System.out.println("ISO_TIME: " + localTime.format(fmt1)); // 10:15:30.12345

DateTimeFormatter fmt2 = DateTimeFormatter.ofPattern("HH:mm");  
System.out.println("HH:mm: " + localTime.format(fmt2)); // 10:15
  • Die Anleitung zu Java DateTimeFormatter
  • Java Date Time Format Pattern

5. getX() *

Die Methode getNano() gibt den Nanosekundenteil dieses LocalDate zurück. Dies entspricht dem Aufrufen der Methode get(ChronoField.NANO_OF_SECOND). Der Rückgabewert liegt im Bereich von 0 bis 10^9-1.
public int getHour()  
public int getMinute()  
public int getSecond()  
public int getNano()
Auch die Methoden getHour(),getMinute(), getSecond() werden ähnlich verstanden wie die Namen vermuten lassen.
Method
Same As
Range
getNano()
get(ChronoField.NANO_OF_SECOND)
0-10^9-1
getSecond()
get(ChronoField.SECOND_OF_MINUTE)
0-59
getMinute()
get(ChronoField.MINUTE_OF_HOUR)
0-59
getHour()
get(ChronoField.HOUR_OF_DAY)
0-23
Zum Beispiel:
LocalTime_getX_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime localTime = LocalTime.parse("13:45:30.12345"); // 13:45:30.123450000
System.out.println("localTime: " + localTime); // 13:45:30
System.out.println();

System.out.println("localTime.getHour(): " + localTime.getHour());  // 13
System.out.println("localTime.getMinute(): " + localTime.getMinute()); // 45
System.out.println("localTime.getSecond(): " + localTime.getSecond()); // 30
System.out.println("localTime.getNano(): " + localTime.getNano());  // 123450000
Output:
localTime: 13:45:30.123450

localTime.getHour(): 13
localTime.getMinute(): 45
localTime.getSecond(): 30
localTime.getNano(): 123450000

6. get(TemporalField)

Gibt den Wert des angegebenen Felds dieses Objekts LocalTime als 32-Bit-Integer zurück.
// Inherited from TemporalAccessor interface
public int get(TemporalField field)
Hinweis: Einige Felder werden möglicherweise nicht von LocalTime unterstützt und eine UnsupportedTemporalTypeException wird ausgelöst. Verwenden Sie zur Sicherheit die Methode isSupported(TemporalField), um zu überprüfen, ob ein bestimmtes Feld von LocalTime unterstützt wird.
Zum Beispiel:
LocalTime_get_field_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime time = LocalTime.parse("13:45:30.12345"); // 13:45:30.123450000
System.out.println("localTime: " + time); // 13:45:30.123450
System.out.println();

// int get(TemporalField field)
System.out.println("AMPM_OF_DAY: " + time.get(ChronoField.AMPM_OF_DAY)); // 13
System.out.println("CLOCK_HOUR_OF_AMPM: " + time.get(ChronoField.CLOCK_HOUR_OF_AMPM)); // 1
System.out.println("CLOCK_HOUR_OF_DAY: " + time.get(ChronoField.CLOCK_HOUR_OF_DAY)); // 13
System.out.println("HOUR_OF_AMPM: " + time.get(ChronoField.HOUR_OF_AMPM)); // 1
System.out.println("HOUR_OF_DAY: " + time.get(ChronoField.HOUR_OF_DAY)); // 13

System.out.println("MILLI_OF_DAY: " + time.get(ChronoField.MILLI_OF_DAY)); // 49530123
System.out.println("MILLI_OF_SECOND: " + time.get(ChronoField.MILLI_OF_SECOND)); // 123
System.out.println("MINUTE_OF_DAY: " + time.get(ChronoField.MINUTE_OF_DAY)); // 825

System.out.println("MINUTE_OF_HOUR: " + time.get(ChronoField.MINUTE_OF_HOUR)); // 45

System.out.println("MICRO_OF_SECOND: " + time.get(ChronoField.MICRO_OF_SECOND)); // 123450
System.out.println("NANO_OF_SECOND: " + time.get(ChronoField.NANO_OF_SECOND)); // 123450000

System.out.println("SECOND_OF_DAY: " + time.get(ChronoField.SECOND_OF_DAY)); // 49530
System.out.println("SECOND_OF_MINUTE: " + time.get(ChronoField.SECOND_OF_MINUTE)); // 30

// Use getLong() instead
// System.out.println("NANO_OF_DAY: " + time.get(ChronoField.NANO_OF_DAY)); // 49530123450000

// Unsupported
// System.out.println("INSTANT_SECONDS: " + time.get(ChronoField.INSTANT_SECONDS));
// System.out.println("OFFSET_SECONDS: " + time.get(ChronoField.OFFSET_SECONDS));
  • TemporalField
  • ChronoField

7. getLong(TemporalField)

Gibt den Wert des angegebenen Felds dieses Objekts LocalTime als 64-Bit-Integer zurück.
// Inherited from TemporalAccessor interface
public long getLong(TemporalField field)
Hinweis: Einige Felder werden möglicherweise nicht von LocalTime unterstützt und eine UnsupportedTemporalTypeException wird ausgelöst. Verwenden Sie zur Sicherheit die Methode isSupported(TemporalField), um zu überprüfen, ob ein bestimmtes Feld von LocalTime unterstützt wird.
Zum Beispiel:
LocalTime_getLong_field_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime time = LocalTime.parse("13:45:30.12345"); // 13:45:30.123450000
System.out.println("localTime: " + time); // 13:45:30.123450
System.out.println();

// long getLong(TemporalField field)
System.out.println("AMPM_OF_DAY: " + time.getLong(ChronoField.AMPM_OF_DAY)); // 13
System.out.println("CLOCK_HOUR_OF_AMPM: " + time.getLong(ChronoField.CLOCK_HOUR_OF_AMPM)); // 1
System.out.println("CLOCK_HOUR_OF_DAY: " + time.getLong(ChronoField.CLOCK_HOUR_OF_DAY)); // 13
System.out.println("HOUR_OF_AMPM: " + time.getLong(ChronoField.HOUR_OF_AMPM)); // 1
System.out.println("HOUR_OF_DAY: " + time.getLong(ChronoField.HOUR_OF_DAY)); // 13

System.out.println("MILLI_OF_DAY: " + time.getLong(ChronoField.MILLI_OF_DAY)); // 49530123
System.out.println("MILLI_OF_SECOND: " + time.getLong(ChronoField.MILLI_OF_SECOND)); // 123
System.out.println("MINUTE_OF_DAY: " + time.getLong(ChronoField.MINUTE_OF_DAY)); // 825

System.out.println("MINUTE_OF_HOUR: " + time.getLong(ChronoField.MINUTE_OF_HOUR)); // 45

System.out.println("MICRO_OF_SECOND: " + time.getLong(ChronoField.MICRO_OF_SECOND)); // 123450
System.out.println("NANO_OF_SECOND: " + time.getLong(ChronoField.NANO_OF_SECOND)); // 123450000

System.out.println("SECOND_OF_DAY: " + time.getLong(ChronoField.SECOND_OF_DAY)); // 49530
System.out.println("SECOND_OF_MINUTE: " + time.getLong(ChronoField.SECOND_OF_MINUTE)); // 30

 
System.out.println("NANO_OF_DAY: " + time.getLong(ChronoField.NANO_OF_DAY)); // 49530123450000

// Unsupported
// System.out.println("INSTANT_SECONDS: " + time.getLong(ChronoField.INSTANT_SECONDS));
// System.out.println("OFFSET_SECONDS: " + time.getLong(ChronoField.OFFSET_SECONDS));
  • TemporalField
  • ChronoField

8. plusX(..) *

Die Methode plusHours(hoursToAdd) gibt eine Kopie dieses Objekts LocalTime mit der angegebenen Anzahl von hinzugefügten Stunden zurück
Die Methoden plusMinutes(minutesToAdd), plusSeconds(secondsToAdd), plusNanos(nanosToAdd) werden auch so verstanden, wie ihr Name vermuten lässt.
public LocalTime plusHours(long hoursToAdd)   
public LocalTime plusMinutes(long minutesToAdd)   
public LocalTime plusSeconds(long secondstoAdd)   
public LocalTime plusNanos(long nanosToAdd)
Zum Beispiel:
LocalTime_plusX_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime localTime = LocalTime.parse("13:45:30"); // 13:45:30
System.out.println("localTime: " + localTime); // 13:45:30
System.out.println();

// plusHours(long hoursToAdd)
LocalTime localTime1 = localTime.plusHours(10);
System.out.println("localTime1: " + localTime1); // 23:45:30

// plusHours(long hoursToAdd)
LocalTime localTime2 = localTime.plusHours(20);
System.out.println("localTime2: " + localTime2); // 09:45:30

LocalTime localTime3 = localTime.plusHours(-10);
System.out.println("localTime3: " + localTime3); // 03:45:30

// plusMinutes(long minutesToAdd)
LocalTime localTime4 = localTime.plusMinutes(5);
System.out.println("localTime4: " + localTime4); // 13:50:30

// plusSeconds(long secondstoAdd)
LocalTime localTime5 = localTime.plusSeconds(29);
System.out.println("localTime5: " + localTime5); // 13:45:59

// plusNanos(long nanosToAdd)
LocalTime localTime6 = localTime.plusNanos(12345);
System.out.println("localTime6: " + localTime6); // 13:45:30.000012345

9. plus(TemporalAmount)

No ADS
Gibt eine Kopie dieses Objekts LocalTime mit der angegebenen hinzugefügten Zeitdauer zurück.
// Inherited from Temporal interface
public LocalTime plus(TemporalAmount amountToAdd)
Sie können die Methode TemporalAmount.addTo(Temporal) verwenden, um das gleiche Ergebnis zu erhalten.
// Defined in TemporalAmount interface:
public Temporal addTo​(Temporal temporal)
Zum Beispiel:
LocalTime_plus_amount_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime localTime = LocalTime.parse("13:45:30"); // 13:45:30
System.out.println("localTime: " + localTime); // 13:45:30
System.out.println();

// ofSeconds(long seconds, long nanoAdjustment)
TemporalAmount amount1 = Duration.ofSeconds(10, 12345);
//plus(TemporalAmount amountToAdd)
LocalTime localTime1 = localTime.plus(amount1);
System.out.println("localTime1: " + localTime1); // 13:45:40.000012345

// plus(TemporalAmount amountToAdd)
LocalTime from = LocalTime.of(10, 20, 35); // of(int hour, int minute, int second)
LocalTime to = LocalTime.of(10, 25, 45);

TemporalAmount amount2 = Duration.between(from, to); // 00:05:10
LocalTime localTime2 = localTime.plus(amount2);
System.out.println("localTime2: " + localTime2); // 13:50:40

10. plus(long, TemporalUnit)

No ADS
Gibt eine Kopie dieses Objekts LocalTime mit einem angegebenen Wert zurück, der in der angegebenen Einheit hinzugefügt wurde
// Inherited from Temporal interface
public LocalTime plus(long amountToAdd, TemporalUnit unit)
Unterstützte Standardeinheiten:
Field
Same as
NANOS
plusNanos(amountToAdd)
MICROS
plusNanos(amountToAdd*1000)
MILLIS
plusNanos(amountToAdd*100_000)
SECONDS
plusSeconds(amountToAdd)
MINUTES
plusMinutes(amountToAdd)
HOURS
plusHours(amountToAdd)
HALF_DAYS
plusHours(amountToAdd*12)
Zum Beispiel:
LocalTime_plus_unit_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime localTime = LocalTime.parse("13:45:30"); // 13:45:30
System.out.println("localTime: " + localTime); // 13:45:30
System.out.println();

// plus(long amountToAdd, TemporalUnit unit)
LocalTime localTime1 = localTime.plus(5, ChronoUnit.HOURS);
System.out.println("localTime1: " + localTime1); // 18:45:30

// plus(long amountToAdd, TemporalUnit unit)
LocalTime localTime2 = localTime.plus(10, ChronoUnit.SECONDS);
System.out.println("localTime2: " + localTime2); // 13:45:40

// plus(long amountToAdd, TemporalUnit unit)
LocalTime localTime3 = localTime.plus(12345, ChronoUnit.NANOS);
System.out.println("localTime3: " + localTime3); // 13:45:30.000012345

11. minusX(..) *

No ADS
Die Methode minusHours(hoursToSubtract) gibt eine Kopie dieses Objekts LocalTime zurück, wobei die angegebene Anzahl an Stunden abgezogen wurde
Als Namen werden auch die Methoden minusMinutes(minutesToSubtract), minusSeconds(secondsToSubtract), minusNanos(nanosToSubtract) verstanden.
public LocalTime minusHours(long hoursToSubtract)

public LocalTime minusMinutes(long minutesToSubtract)  

public LocalTime minusSeconds(long secondsToSubtract)

public LocalTime minusNanos(long nanosToSubtract)
Zum Beispiel:
LocalTime_minusX_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime localTime = LocalTime.parse("13:45:30"); // 13:45:30
System.out.println("localTime: " + localTime); // 13:45:30
System.out.println();

// minusHours(long hoursToSubtract)
LocalTime localTime1 = localTime.minusHours(10);
System.out.println("localTime1: " + localTime1); // 03:45:30

// minusHours(long hoursToSubtract)
LocalTime localTime2 = localTime.minusHours(20);
System.out.println("localTime2: " + localTime2); // 17:45:30

LocalTime localTime3 = localTime.minusHours(-10);
System.out.println("localTime3: " + localTime3); // 23:45:30

// minusMinutes(long minutesToSubtract)
LocalTime localTime4 = localTime.minusMinutes(5);
System.out.println("localTime4: " + localTime4); // 13:40:30

// minusSeconds(long secondstoSubtract)
LocalTime localTime5 = localTime.minusSeconds(29);
System.out.println("localTime5: " + localTime5); // 13:45:01

// minusNanos(long nanosToSubtract)
LocalTime localTime6 = localTime.minusNanos(12345);
System.out.println("localTime6: " + localTime6); // 13:45:29.999987655

12. minus(TemporalAmount)

No ADS
Gibt eine Kopie dieses Objekts LocalTime zurück, wobei die angegebene Zeit abgezogen wurde.
// Inherited from Temporal interface
public LocalTime minus(TemporalAmount amountToSubtract)
Sie können die Methode TemporalAmount.subtractFrom(Temporal) verwenden, um das gleiche Ergebnis zu erhalten.
// Defined in TemporalAmount interface:
public Temporal subtractFrom(Temporal temporal)
Zum Beispiel:
LocalTime_minus_amount_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime localTime = LocalTime.parse("13:45:30"); // 13:45:30
System.out.println("localTime: " + localTime); // 13:45:30
System.out.println();

// ofSeconds(long seconds, long nanoAdjustment)
TemporalAmount amount1 = Duration.ofSeconds(10, 12345);
// minus(TemporalAmount amountToSubtract)
LocalTime localTime1 = localTime.minus(amount1);
System.out.println("localTime1: " + localTime1); // 13:45:19.999987655

// minus(TemporalAmount amountToSubtract)
LocalTime from = LocalTime.of(10, 20, 35); // of(int hour, int minute, int second)
LocalTime to = LocalTime.of(10, 25, 45);

TemporalAmount amount2 = Duration.between(from, to); // 00:05:10
LocalTime localTime2 = localTime.minus(amount2);
System.out.println("localTime2: " + localTime2); // 13:40:20

13. minus(long, TemporalUnit)

No ADS
Gibt eine Kopie dieses Objekts LocalTime mit einem angegebenen Wert zurück, der in der angegebenen Einheit abgezogen wird.
// Inherited from Temporal interface
public LocalTime minus(long amountToSubtract, TemporalUnit unit)
Unterstützte Standardeinheiten:
Field
Same as
NANOS
minusNanos(amountToSubtract)
MICROS
minusNanos(amountToSubtract*1000)
MILLIS
minusNanos(amountToSubtract*100_000)
SECONDS
minusSeconds(amountToSubtract)
MINUTES
minusMinutes(amountToSubtract)
HOURS
minusHours(amountToSubtract)
HALF_DAYS
minusHours(amountToSubtract*12)
Zum Beispiel:
LocalTime_minus_unit_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime localTime = LocalTime.parse("13:45:30"); // 13:45:30
System.out.println("localTime: " + localTime); // 13:45:30
System.out.println();

// minus(long amountToSubtract, TemporalUnit unit)
LocalTime localTime1 = localTime.minus(5, ChronoUnit.HOURS);
System.out.println("localTime1: " + localTime1); // 08:45:30

// minus(long amountToSubtract, TemporalUnit unit)
LocalTime localTime2 = localTime.minus(10, ChronoUnit.SECONDS);
System.out.println("localTime2: " + localTime2); // 13:45:20

// minus(long amountToSubtract, TemporalUnit unit)
LocalTime localTime3 = localTime.minus(12345, ChronoUnit.NANOS);
System.out.println("localTime3: " + localTime3); // 13:45:29.999987655

14. withX(..) *

No ADS
Die Methode withHour(hour) gibt eine Kopie dieser LocalTime zurück, wobei die Stunde auf die angegebene Stunde geändert wurde.
Die Methoden withMinute(minute), withSecond(second), withNano(nanoOfSecond) werden auch als Namen verstanden.
public LocalTime withHour(int hour)
public LocalTime withMinute(int minute)
public LocalTime withSecond(int second)
public LocalTime withNano(int nanoOfSecond)
Zum Beispiel:
LocalTime_withX_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime localTime = LocalTime.parse("13:45:30"); // 13:45:30
System.out.println("localTime: " + localTime); // 13:45:30
System.out.println();

// withHour(int hour)  [0 - 23]
LocalTime localTime1 = localTime.withHour(23);
System.out.println("localTime1: " + localTime1); // 23:45:30

// withMinute(int minute)   [0 - 59]
LocalTime localTime2 = localTime.withMinute(59);
System.out.println("localTime2: " + localTime2); // 13:59:30

// withSecond(int second)   [0 - 59]
LocalTime localTime3 = localTime.withSecond(59);
System.out.println("localTime3: " + localTime3); // 13:45:59

// withNano(int nanoOfSecond)    [0 - 10^9-1]
LocalTime localTime4 = localTime.withNano(12345);
System.out.println("localTime4: " + localTime4); // 13:45:30.000012345

15. with(TemporalAdjuster)

No ADS
Gibt eine Kopie dieses Objekts LocalDate zurück, wobei die Zeitdaten vom Objekt TemporalAdjuster angepasst werden.
// Inherited from Temporal interface
public LocalTime with(TemporalAdjuster adjuster)
Zum Beispiel:
LocalTime_with_adjuster_ex1.java
LocalTime now = LocalTime.now();
System.out.println("Now is: " + now);
System.out.println();

// with(TemporalAdjuster adjuster)
LocalTime noon = now.with(LocalTime.NOON);
System.out.println("NOON: " + noon); // 12:00

// with(TemporalAdjuster adjuster)
LocalTime midnight = now.with(LocalTime.MIDNIGHT);
System.out.println("MIDNIGHT: " + midnight);  // 00:00
Beispiel: Schreiben Sie einen benutzerdefinierten TemporalAdjuster:
LocalTime_with_adjuster_ex2.java
package org.o7planning.localtime.ex;

import java.time.LocalTime;
import java.time.temporal.ChronoField;
import java.time.temporal.Temporal;
import java.time.temporal.TemporalAdjuster;

public class LocalTime_with_adjuster_ex2 {

    public static void main(String[] args) {
        LocalTime now = LocalTime.now();
        System.out.println("Now is: " + now);
        System.out.println();

        LocalTime lastMinOfHour = now.with(new LastMinOfHourAdjuster());
        System.out.println("lastMinOfHour: " + lastMinOfHour);
    }
}

class LastMinOfHourAdjuster implements TemporalAdjuster {
    @Override
    public Temporal adjustInto(Temporal temporal) {
        LocalTime t = LocalTime.from(temporal);

        return t.with(ChronoField.MINUTE_OF_HOUR, 59);
    }
};
Output:
Now is: 19:37:57.524205

lastMinOfHour: 19:59:57.524205

16. with(TemporalField, long)

No ADS
Gibt eine Kopie dieses Objekts LocalTime zurück, wobei das angegebene Feld auf den neuen Wert geändert wurde.
// Inherited from Temporal interface
public LocalTime with(TemporalField field, long newValue)
Zum Beispiel:
LocalTime_with_field_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime myTime = LocalTime.parse("13:45:30.12345"); // 13:45:30.123450000

System.out.println("myTime is: " + myTime);
System.out.println("myTime CLOCK_HOUR_OF_AMPM: " + myTime.get(ChronoField.CLOCK_HOUR_OF_AMPM)); // 1
System.out.println("myTime CLOCK_HOUR_OF_DAY: " + myTime.get(ChronoField.CLOCK_HOUR_OF_DAY)); // 13
System.out.println("myTime SECOND_OF_MINUTE: " + myTime.get(ChronoField.SECOND_OF_MINUTE)); // 30
System.out.println();

LocalTime localTime1 = myTime.with(ChronoField.CLOCK_HOUR_OF_AMPM, 10); // 22:45:30.123450
System.out.println("localTime1: " + localTime1);

LocalTime localTime2 = myTime.with(ChronoField.CLOCK_HOUR_OF_DAY, 10); // 10:45:30.123450
System.out.println("localTime2: " + localTime2);

LocalTime localTime3 = myTime.with(ChronoField.SECOND_OF_MINUTE, 59); // 13:45:59.123450
System.out.println("localTime3: " + localTime3);
  • ChronoField
  • TemporalField

17. adjustInto(Temporal)

Die Methode adjustInto(Temporal) gibt eine Kopie des angegebenen Objekts Temporal mit Zeitdaten zurück, die so angepasst sind, dass sie diesem Objekt LocalTime ähneln.
// Inherited from TemporalAdjuster interface
public Temporal adjustInto(Temporal temporal)
Zum Beispiel:
LocalTime localTime = LocalTime.parse("19:30:55");

// Current date time in System default time-zone.
ZonedDateTime zonedDateTime = ZonedDateTime.now();  

System.out.println("Before adjustInto(): " + zonedDateTime);

// returns Temporal
ZonedDateTime adjustedDateTime = (ZonedDateTime) localTime.adjustInto(zonedDateTime);

// print results
System.out.println("After adjustInto(): " + adjustedDateTime);
Output:
Before adjustInto(): 2021-06-18T17:18:06.355673+06:00[Asia/Bishkek]
After adjustInto(): 2021-06-18T19:30:55+06:00[Asia/Bishkek]

18. atDate(LocalDate)

Die Methode atDate(LocalDate) wird verwendet, um dieses Objekt LocalTime mit dem angegebenen Objekt LocalDate zu kombinieren, um ein Objekt LocalDateTime zu erstellen.
public LocalDateTime atDate(LocalDate date)
Zum Beispiel:
LocalTime_atDate_ex1.java
LocalTime localTime = LocalTime.parse("19:30:55");
LocalDate localDate = LocalDate.parse("2000-05-20");

LocalDateTime localDateTime = localTime.atDate(localDate);
System.out.println(localDateTime); // 2000-05-20T19:30:55

19. atOffset(ZoneOffset)

No ADS
Die Methode atOffset(ZoneOffset) wird verwendet, um dieses Objekt LocalTime mit dem angegebenen Objekt ZoneOffset zu kombinieren, um ein Objekt OffsetTime zu erstellen.
public OffsetTime atOffset(ZoneOffset offset)
Zum Beispiel:
LocalTime_atOffset_ex1.java
LocalTime localTime = LocalTime.parse("16:30:59");
System.out.println("localTime: " + localTime); // 16:30:59

// Create a ZoneOffset object
ZoneOffset offset = ZoneOffset.ofHours(2);

// atOffset(ZoneOffset)
OffsetTime offsetTime = localTime.atOffset(offset);
System.out.println("offsetTime: " + offsetTime); // 16:30:59+02:00
  • Die Anleitung zu Java OffsetTime

20. toX(..) *

public int toSecondOfDay()

public long toNanoOfDay()  

public long toEpochSecond(LocalDate date, ZoneOffset offset)

21. until(Temporal, TemporalUnit)

Berechnet die Zeit bis zu einem anderen Datum/Uhrzeit in Bezug auf die angegebene Einheit.
// Inherited from Temporal interface
public long until(Temporal endExclusive, TemporalUnit unit)
Zum Beispiel:
LocalTime_until_ex1.java
LocalTime localTime_from = LocalTime.of(1, 0, 0);
System.out.println("Time From: " + localTime_from); // 01:00

LocalTime localTime_to = LocalTime.of(13, 30, 59);  
System.out.println("Time To: " + localTime_to); // 13:30:59
System.out.println();

long hours = localTime_from.until(localTime_to, ChronoUnit.HOURS);
System.out.println("hours: " + hours); // 12

long minutes = localTime_from.until(localTime_to, ChronoUnit.MINUTES);
System.out.println("minutes: " + minutes); // 750
Sie können auch die Methode TemporalUnit.between(Temporal,Temporal) verwenden, um das gleiche Ergebnis zu erhalten:
TemporalUnit_between_ex1.java
LocalTime localTime_from = LocalTime.of(1, 0, 0);
System.out.println("Time From: " + localTime_from); // 01:00

LocalTime localTime_to = LocalTime.of(13, 30, 59);
System.out.println("Time To: " + localTime_to); // 13:30:59
System.out.println();

long hours = ChronoUnit.HOURS.between(localTime_from, localTime_to);
System.out.println("hours: " + hours); // 12

long minutes = ChronoUnit.MINUTES.between(localTime_from, localTime_to);
System.out.println("minutes: " + minutes); // 750

22. truncatedTo(TemporalUnit)

Gibt eine Kopie dieses Objekts LocalTime mit der abgeschnittenen Zeit in der angegebenen Einheit zurück.
public LocalTime truncatedTo(TemporalUnit unit)
Zum Beispiel:
LocalTime_truncatedTo_ex1.java
LocalTime localTime = LocalTime.parse("21:30:59.12345");
System.out.println("localTime: " + localTime); // 21:30:59.123450

// truncatedTo(TemporalUnit unit)
LocalTime truncatedLocalTime = localTime.truncatedTo(ChronoUnit.MINUTES);
 
System.out.println("truncatedLocalTime: " + truncatedLocalTime); // 21:30

23. range(TemporalField)

Gibt einen Bereich gültiger Werte für das angegebene Feld zurück.
// Inherited from TemporalAccessor interface
public ValueRange range(TemporalField field)
Zum Beispiel:
LocalTime_range_ex1.java
LocalTime localTime = LocalTime.parse("09:30:45.12345");

// range(TemporalField field)
ValueRange range1 = localTime.range(ChronoField.MILLI_OF_SECOND);
System.out.println("Range in MILLI_OF_SECOND: " + range1);

ValueRange range2 = localTime.range(ChronoField.CLOCK_HOUR_OF_DAY);
System.out.println("Range in CLOCK_HOUR_OF_DAY: " + range2);

ValueRange range3 = localTime.range(ChronoField.CLOCK_HOUR_OF_AMPM);
System.out.println("Range in CLOCK_HOUR_OF_AMPM: " + range3);
Output:
Range in MILLI_OF_SECOND: 0 - 999
Range in CLOCK_HOUR_OF_DAY: 1 - 24
Range in CLOCK_HOUR_OF_DAY: 1 - 12
  • ValueRange
  • TemporalUnit
  • ChronoField

24. query(TemporalQuery<R>)

No ADS
Fragen Sie dieses Objekt LocalTime mit dem angegebenen Objekt TemporalQuery ab, um Informationen zu extrahieren.
// Inherited from TemporalAccessor interface
public <R> R query(TemporalQuery<R> query)
Zum Beispiel:
LocalTime_query_ex1.java
package org.o7planning.localtime.ex;

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.chrono.Chronology;
import java.time.temporal.TemporalQueries;
import java.time.temporal.TemporalUnit;

public class LocalTime_query_ex1 {

    public static void main(String[] args) {
        LocalTime localTime = LocalTime.of(11, 30, 59, 12345);  
        System.out.printf("localTime: %s%n", localTime); // 11:30:59.000012345

        TemporalUnit unit = localTime.query(TemporalQueries.precision());
        System.out.printf("precision: %s%n", unit);

        LocalTime localTime2 = localTime.query(TemporalQueries.localTime());
        System.out.printf("localTime2: %s%n", localTime2);

        LocalDate localDate = localTime.query(TemporalQueries.localDate());
        System.out.printf("localDate: %s%n", localDate);

        ZoneOffset zoneOffset = localTime.query(TemporalQueries.offset());
        System.out.printf("ZoneOffset: %s%n", zoneOffset);

        ZoneId zone = localTime.query(TemporalQueries.zone());
        System.out.printf("zone: %s%n", zone);

        ZoneId zoneId = localTime.query(TemporalQueries.zoneId());
        System.out.printf("zoneId: %s%n", zoneId);

        Chronology chronology = localTime.query(TemporalQueries.chronology());
        System.out.printf("chronology: %s%n", chronology);
    }
}
Output:
localTime: 11:30:59.000012345
precision: Nanos
localTime2: 11:30:59.000012345
localDate: null
ZoneOffset: null
zone: null
zoneId: null
chronology: null

25. isSupported(TemporalField)

No ADS
// Inherited from TemporalAccessor interface
public boolean isSupported(TemporalField field)
Grundsätzlich unterstützt LocalTime die folgenden Standardfelder:
  • ChronoField.NANO_OF_SECOND
  • ChronoField.NANO_OF_DAY
  • ChronoField.MICRO_OF_SECOND
  • ChronoField.MICRO_OF_DAY
  • ChronoField.MILLI_OF_SECOND
  • ChronoField.MILLI_OF_DAY
  • ChronoField.SECOND_OF_MINUTE
  • ChronoField.SECOND_OF_DAY
  • ChronoField.MINUTE_OF_HOUR
  • ChronoField.MINUTE_OF_DAY
  • ChronoField.HOUR_OF_AMPM
  • ChronoField.CLOCK_HOUR_OF_AMPM
  • ChronoField.HOUR_OF_DAY
  • ChronoField.CLOCK_HOUR_OF_DAY
  • ChronoField.AMPM_OF_DAY
Zum Beispiel:
LocalTime_isSupported_ex1.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime localTime = LocalTime.parse("13:45:30.12345"); // 13:45:30.123450000

// boolean isSupported(TemporalField field)
// LocalTime does not support ChronoField.DAY_OF_MONTH, DAY_OF_YEAR,.. (** Used for LocalDateTime, LocalDate)
System.out.println("DAY_OF_MONTH is supported? " + localTime.isSupported(ChronoField.DAY_OF_MONTH)); // false
System.out.println("DAY_OF_YEAR is supported? " + localTime.isSupported(ChronoField.DAY_OF_YEAR)); // false

// LocalTime support ChronoField.MINUTE_OF_DAY, SECOND_OF_MINUTE,..
System.out.println("MINUTE_OF_DAY is supported? " + localTime.isSupported(ChronoField.MINUTE_OF_DAY)); // true
System.out.println("SECOND_OF_MINUTE is supported? " + localTime.isSupported(ChronoField.SECOND_OF_MINUTE)); // true
  • TemporalField
  • ChronoField

26. isSupported(TemporalUnit)

No ADS
Überprüfen Sie, ob eine bestimmte TemporalUnit unterstützt wird.
// Inherited from Temporal interface
public boolean isSupported(TemporalUnit unit)
Grundsätzlich unterstützt LocalTime die folgenden Standardeinheiten:
  • ChronoUnit.NANOS
  • ChronoUnit.MICROS
  • ChronoUnit.MILLIS
  • ChronoUnit.SECONDS
  • ChronoUnit.MINUTES
  • ChronoUnit.HOURS
  • ChronoUnit.HALF_DAYS
Zum Beispiel:
LocalTime_isSupported_ex2.java
// Format: 13:45:30.12345 or 13:45:30 or 13:45
LocalTime localTime = LocalTime.parse("13:45:30.12345"); // 13:45:30.123450000

// boolean isSupported(TemporalUnit unit)
// LocalTime does not support ChronoUnit.CENTURIES, WEEKS,.. (** Used for LocalDateTime, LocalDate)
System.out.println("CENTURIES is supported? " + localTime.isSupported(ChronoUnit.CENTURIES)); // false
System.out.println("WEEKS is supported? " + localTime.isSupported(ChronoUnit.WEEKS)); // false

// LocalTime support ChronoUnit.HOURS, MINUTES,..
System.out.println("HOURS is supported? " + localTime.isSupported(ChronoUnit.HOURS)); // true
System.out.println("MINUTES is supported? " + localTime.isSupported(ChronoUnit.MINUTES)); // true
No ADS