Java Language
Czas lokalny
Szukaj…
Składnia
- LocalTime time = LocalTime.now (); // Inicjuje się z bieżącym zegarem systemowym
- Czas lokalny = czas lokalny.MIDNOC; // 00:00
- Czas lokalny = czas lokalny.NOON; // 12:00
- Czas lokalny = czas lokalny.of (12, 12, 45); // 12:12:45
Parametry
metoda | Wynik |
---|---|
LocalTime.of(13, 12, 11) | 13:12:11 |
LocalTime.MIDNIGHT | 00:00 |
LocalTime.NOON | 12:00 |
LocalTime.now() | Aktualny czas z zegara systemowego |
LocalTime.MAX | Maksymalny obsługiwany czas lokalny 23: 59: 59,999999999 |
LocalTime.MIN | Minimalny obsługiwany czas lokalny 00:00 |
LocalTime.ofSecondOfDay(84399) | 23:59:59, Uzyskuje czas od wartości z drugiego dnia |
LocalTime.ofNanoOfDay(2000000000) | 00:00:02, Uzyskuje czas na podstawie wartości nanos dnia |
Uwagi
Jak wskazuje nazwa klasy, LocalTime
reprezentuje czas bez strefy czasowej. To nie reprezentuje daty. To prosta etykieta na dany czas.
Klasa opiera się na wartościach i podczas porównywania należy stosować metodę equals
.
Ta klasa pochodzi z pakietu java.time.
Modyfikacja czasu
Możesz dodać godziny, minuty, sekundy i nanosekundy:
LocalTime time = LocalTime.now();
LocalTime addHours = time.plusHours(5); // Add 5 hours
LocaLTime addMinutes = time.plusMinutes(15) // Add 15 minutes
LocalTime addSeconds = time.plusSeconds(30) // Add 30 seconds
LocalTime addNanoseconds = time.plusNanos(150_000_000) // Add 150.000.000ns (150ms)
Strefy czasowe i ich różnica czasu
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
public class Test {
public static void main(String[] args)
{
ZoneId zone1 = ZoneId.of("Europe/Berlin");
ZoneId zone2 = ZoneId.of("Brazil/East");
LocalTime now = LocalTime.now();
LocalTime now1 = LocalTime.now(zone1);
LocalTime now2 = LocalTime.now(zone2);
System.out.println("Current Time : " + now);
System.out.println("Berlin Time : " + now1);
System.out.println("Brazil Time : " + now2);
long minutesBetween = ChronoUnit.MINUTES.between(now2, now1);
System.out.println("Minutes Between Berlin and Brazil : " + minutesBetween +"mins");
}
}
Czas między dwoma LocalTime
Istnieją dwa równoważne sposoby obliczania jednostki czasu między dwiema LocalTime
: (1) until(Temporal, TemporalUnit)
metody until(Temporal, TemporalUnit)
i poprzez (2) TemporalUnit.between(Temporal, Temporal)
.
import java.time.LocalTime;
import java.time.temporal.ChronoUnit;
public class AmountOfTime {
public static void main(String[] args) {
LocalTime start = LocalTime.of(1, 0, 0); // hour, minute, second
LocalTime end = LocalTime.of(2, 10, 20); // hour, minute, second
long halfDays1 = start.until(end, ChronoUnit.HALF_DAYS); // 0
long halfDays2 = ChronoUnit.HALF_DAYS.between(start, end); // 0
long hours1 = start.until(end, ChronoUnit.HOURS); // 1
long hours2 = ChronoUnit.HOURS.between(start, end); // 1
long minutes1 = start.until(end, ChronoUnit.MINUTES); // 70
long minutes2 = ChronoUnit.MINUTES.between(start, end); // 70
long seconds1 = start.until(end, ChronoUnit.SECONDS); // 4220
long seconds2 = ChronoUnit.SECONDS.between(start, end); // 4220
long millisecs1 = start.until(end, ChronoUnit.MILLIS); // 4220000
long millisecs2 = ChronoUnit.MILLIS.between(start, end); // 4220000
long microsecs1 = start.until(end, ChronoUnit.MICROS); // 4220000000
long microsecs2 = ChronoUnit.MICROS.between(start, end); // 4220000000
long nanosecs1 = start.until(end, ChronoUnit.NANOS); // 4220000000000
long nanosecs2 = ChronoUnit.NANOS.between(start, end); // 4220000000000
// Using others ChronoUnit will be thrown UnsupportedTemporalTypeException.
// The following methods are examples thereof.
long days1 = start.until(end, ChronoUnit.DAYS);
long days2 = ChronoUnit.DAYS.between(start, end);
}
}
Wprowadzenie
LocalTime jest niezmienną klasą i bezpieczną dla wątków, używaną do reprezentowania czasu, często postrzeganą jako godzina-minuta-sekunda. Czas jest reprezentowany z dokładnością do nanosekund. Na przykład wartość „13: 45.30.123456789” można zapisać w czasie lokalnym.
Ta klasa nie przechowuje ani nie reprezentuje daty ani strefy czasowej. Zamiast tego jest to opis czasu lokalnego widocznego na zegarze ściennym. Nie może reprezentować chwili na linii czasu bez dodatkowych informacji, takich jak przesunięcie lub strefa czasowa. Jest to klasa oparta na wartościach, do porównań należy stosować metodę równości.
Pola
MAX - maksymalny obsługiwany czas lokalny, „23: 59: 59.999999999”. MIDNIGHT, MIN, NOON
Ważne metody statyczne
now (), teraz (Zegar), teraz (ZoneId zone), parsuj (tekst CharSequence)
Ważne metody instancji
isAfter (LocalTime other), isBefore (LocalTime other), minus (TemporalAmount kwotaToSubtract), minus (długa kwotaToSubtract, TemporalUnit jednostka), plus (TemporalAmount kwotaToAdd), plus (długa kwotaToAdd, jednostka TemporalUnit)
ZoneId zone = ZoneId.of("Asia/Kolkata");
LocalTime now = LocalTime.now();
LocalTime now1 = LocalTime.now(zone);
LocalTime then = LocalTime.parse("04:16:40");
Różnicę czasu można obliczyć na jeden z poniższych sposobów
long timeDiff = Duration.between(now, now1).toMinutes();
long timeDiff1 = java.time.temporal.ChronoUnit.MINUTES.between(now2, now1);
Możesz także dodawać / odejmować godziny, minuty lub sekundy od dowolnego obiektu LocalTime.
minusHours (długie godzinyToSubtract), minusMinutes (długie godzinyToMinutes), minusNanos (długie nanosToSubtract), minusSeconds (długie sekundyToSubtract), plusHours (długie godzinyToSubtract), plusMinutes (długie godzinyToMinutes), plusNanos (długie nanosToSubtract)
now.plusHours(1L);
now1.minusMinutes(20L);