Sobes.tech
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: ZonedDateTime objekti ir nemainīgi, tāpat kā citi java.time klases.

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
OffsetDateTime Daļēji
ZonedDateTime