CodeBlanks Logo Icon CodeBlanks

Instant ve ZonedDateTime

Instant ve ZonedDateTime ile zaman dilimi öğrenirsin.

Instant ve ZonedDateTime

Instant, zaman çizelgesinde tek bir noktayı UTC olarak temsil eder. ZonedDateTime ise bir bölge bilgisi ekler; böylece aynı an farklı bölgelerdeki saate çevrilebilir.

Örnek: Instant now = Instant.now(). Bu, UTC'de şu an verir. ZonedDateTime zdt = now.atZone(ZoneId.of("Europe/Istanbul")) ile bu an İstanbul saatıne çevrilir. Instant zaman damgalarını saklamak için, ZonedDateTime ise bölgesel gösterim için uygundur.

Instant ve ZonedDateTime dönüşümü

Bir Instant'ı bölgesel saate çevirmek için atZone kullanılır. Tersi için toInstant çağrılır. Bu dönüşümler, küresel sistemlerdeki saat hesaplarını yönetir.

Örnek: zdt.toInstant() ile herhangi bir bölgesel zaman UTC'ye döner. Böylece iki bölgenin saatını karşılaştırmak mümkün olur: önce ikisini de Instant'a çevir, sonra farkı al. Bölge bilgisi kaybolduğundan sonuç her zaman kesin ve karşılaştırılabilirdir.

Uygulama ZonedDateTime ile yıl bilgisini yazdır

ZonedDateTime.of(2024, 1, 15, 10, 30, 0, 0, ZoneId.of("UTC")) ile bir bölgesel zaman oluştur. getYear() ile yıl bilgisini System.out.println ile yazdır.

Başlangıç kodu

Main.java
import java.time.ZonedDateTime;
import java.time.ZoneId;

// ZonedDateTime.of ile 15 Ocak 2024 10:30 UTC oluştur
// getYear ile yılı al
// Yılı yazdır

Örnek çözüm

Main.java
import java.time.ZonedDateTime;
import java.time.ZoneId;

public class ZoneExample {
    public static void main(String[] args) {
        ZonedDateTime zdt = ZonedDateTime.of(2024, 1, 15, 10, 30, 0, 0, ZoneId.of("UTC"));
        System.out.println(zdt.getYear());
    }
}

Beklenen çıktı

2024

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Zaman sınıflarını eşleştir

Kavram Anlamı
Instant UTC zaman noktası
ZonedDateTime Bölge ile zaman
Instant.now Şu an UTC
ZoneId Bölge kimliği

2 Hangi sınıf UTC'de tek bir zaman noktasını temsil eder?

  • LocalDate
  • Period
  • Instant Doğru cevap
  • LocalTime

Açıklama: Instant UTC'de bir zaman noktasıdır.

3 atZone çağrısını tamamla

Soru
ZonedDateTime zdt = instant.____(ZoneId.of("UTC"));
Cevap
ZonedDateTime zdt = instant.atZone(ZoneId.of("UTC"));

Açıklama: atZone bir Instant'ı bölgesel saate çevirir.

İleri seviye bölümündeki tüm dersler