Junior
Kas ir ZonedDateTime?
sobes.tech AI
Atbilde no AI
ZonedDateTime irklase no java.time paketē, kas pārstāv datumu un laiku ar pareizu nobīdi no UTC* un ar saistīto laika joslu. Tas ņem vērā vasaras laiku un citus konkrētas laika joslas īpašības.
Atšķirībā no OffsetDateTime, kas glabā tikai nobīdi no UTC, ZonedDateTime glabā atsauci uz ZoneId objektu, kas pārstāv laika joslu, ļaujot pareizi veikt laika aprēķinus, ņemot vērā gada laikā notiekošās izmaiņas.
Galvenās īpašības:
- Kombinācija: apvieno datumu, laiku un laika joslu.
- Precizitāte: ņem vērā vasaras laiku (DST) un citas izmaiņas laika joslā.
- Immutable:
ZonedDateTimeobjekti ir nemainīgi, tāpat kā citijava.timeklases.
Piemērs:
// Izveidot `ZonedDateTime` ar noteiktu laiku un laika joslu
ZonedDateTime dateTimeInLondon = ZonedDateTime.of(2023, 10, 26, 10, 30, 0, 0, ZoneId.of("Europe/London"));
System.out.println(dateTimeInLondon);
// Saņemt pašreizējo `ZonedDateTime` sistēmas laika joslā
ZonedDateTime now = ZonedDateTime.now();
System.out.println(now);
Lietojums:
- Notikumu attēlošana, kas ir saistīti ar konkrētu vietu un laiku (piemēram, koncerts sākas noteiktā pilsētā).
- Laika aprēķini starp dažādām laika joslām, ņemot vērā DST noteikumus.
- Darbs ar ārējām sistēmām vai datu bāzēm, kas prasa norādīt laika joslu.
Salīdzinājums ar citām klasēm:
| Klase | Diena | Laiks | Nobīde no UTC | Laika josla | Ņem vērā DST |
|---|---|---|---|---|---|
LocalDateTime |
Jā | Jā | Nē | Nē | Nē |
OffsetDateTime |
Jā | Jā | Jā | Nē | Daļēji |
ZonedDateTime |
Jā | Jā | Jā | Jā | Jā |