Instant ve ZonedDateTime
- Java kursu
- İleri seviye
- Ders 23/82
- 5 dk
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
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
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
ZonedDateTime zdt = instant.____(ZoneId.of("UTC"));
ZonedDateTime zdt = instant.atZone(ZoneId.of("UTC"));
Açıklama: atZone bir Instant'ı bölgesel saate çevirir.