2 puan yazan GN⁺ 2024-10-31 | 1 yorum | WhatsApp'ta paylaş
  • Saat dilimleri karmaşıktır, ancak bilgisayarların bunu uygulaması gerektiği için tuhaflıkları yalnızca sonlu bir aralıktadır.
    • Asia/Kathmandu, UTC'ye göre alışılmadık bir ofsete sahiptir.
    • Africa/Casablanca, saat dilimi modeline iyi uymadığı için hardcode edilmiştir.
    • America/Nuuk, yaz saatine -01:00'da başlar.
    • Africa/Cairo ve America/Santiago, yaz saatine 24:00'te (00:00 değil) başlar.
    • Australia/Lord_Howe, en tuhaf yaz saati kuralına sahiptir.

PGXIIREAM: Papa XIII. Gregorius her şeyi yönetiyor

  • Dünyanın büyük bölümü Gregoryen takvime dayalı bir zaman sistemi kullanır.
  • Gregoryen takvim, güneşin konumunu yıl boyunca tutarlı tutmak için son derece kullanışlıdır.
  • UTC, Gregoryen takvimin modern resmileştirilmiş hâlidir ve tüm dünya zamanı buna göre ayarlar.

Artık saniyeler önemli değil

  • Dünya'nın dönüşü yavaşladığı için bunu telafi etmek amacıyla artık saniyeler eklenir.
  • Programlama dilleri 61 saniyeyi ifade etmediği için artık saniyeler göz ardı edilebilir.
  • Bulut sağlayıcıları bu sorunu, artık saniye sırasında saatleri yavaşlatarak çözer.

Tuhaf saat dilimleri

Asia/Kathmandu alışılmadık bir ofsete sahiptir

  • Nepal, UTC'nin 5 saat 45 dakika ilerisindedir.
  • Bilgisayarlar bunu IANA saat dilimi veritabanı üzerinden bilir.

PDT veya CET gibi dizgelerin bir anlamı yoktur

  • Saat dilimi tanımlayıcıları belirsiz olabilir ve birçok saat dilimi aynı tanımlayıcıyı paylaşır.

Yaz saati uygulaması olan saat dilimleri nasıl temsil edilir?

  • Yaz saati geçiş kuralları karmaşıktır ve bilgisayarlar yerel saati buna göre hesaplar.

Africa/Casablanca ve Asia/Gaza Ay'ı takip eder, ama saat dilimleri Güneş'i takip eder

  • Fas ve Gazze, yaz saatini Ramazan'a göre ayarlar; bu da hardcode edilmiştir.

America/Nuuk, yaz saatine -1'de geçer

  • Grönland, yaz saatine Avrupa ile aynı anda başlar, ancak yerel saatte bu -1'de olur.

America/Santiago ve Africa/Cairo, 24:00'te geçiş yapar

  • Bu saat dilimleri yaz saatine 24:00'te geçer; bu da bir sonraki güne sarkmak anlamına gelir.

Australia/Lord_Howe, en tuhaf yaz saati geçişine sahiptir

  • Lord Howe Adası'nda 30 dakikalık bir yaz saati geçişi vardır.

GN⁺ özeti

  • Saat dilimleri karmaşıktır, ancak bilgisayarların bunu uygulaması gerektiği için tuhaflıkları yalnızca sonlu bir aralıktadır.
  • Australia/Lord_Howe, 30 dakikalık yaz saati geçişiyle en sıra dışı saat dilimidir.
  • Bu yazı, saat dilimlerinin karmaşıklığını anlamak için faydalıdır ve programcıların ilgisini çekebilir.
  • Benzer işleve sahip projeler arasında tzdb bulunur.

1 yorum

 
GN⁺ 2024-10-31
Hacker News görüşü
  • tz veritabanı, Büyük Patlama öncesindeki saat dilimi geçişlerini hesaplamaz. Büyük Patlama öncesi zaman damgaları fiziksel olarak şüphelidir

    • Örneğin Glib, São Paulo zaman damgalarını hesaplarken hâlâ Brezilya'nın 1913 kurallarını uygular
    • Büyük Patlama öncesi artık saniyelere de izin verilmez
  • Afrika/Addis_Ababa saat dilimi Etiyopya'da kimsenin fiilen uymadığı bir saat dilimidir

    • Yerel halk zamanı 6 saat kaydırarak kullanır
    • AM döngüsü şafakta, PM döngüsü ise alacakaranlıkta başlar
  • Programlama dillerinin 61 saniyelik dakikayı ifade edemediği doğru değildir

    • Raku artık saniyeyi destekler
    • Perl 5'in DateTime.pm paketi de artık saniyeyi destekler ve bu da karmaşıklığı artırır
    • Artık saniyeler neredeyse hiç kullanılmaz ve kodun karmaşıklığını artırır
  • Asya/Kudüs saat dilimi din ve devlet meseleleri nedeniyle karmaşıktır

    • Yaz saati uygulaması, dini nedenlerle her yıl müzakere edilerek belirlenir
    • Yaz saati uygulamasının Rosh HaShanah'ta bitmemesi için istisnalar vardır
  • ABD adresine dayanarak yerel saati bulan bir fonksiyon yazma deneyimi

    • Eyaletler ile saat dilimlerini statik olarak eşlemek, uç durumlar nedeniyle zordur
    • ZIP kodları ile UTC ofsetlerini eşleyen bir CSV satın alınıp kullanılmıştır
    • ABD'nin denizaşırı toprakları ve askerî üsleri nedeniyle karmaşık saat dilimleri vardır
  • Filistin'in saat diliminde, yaz saati uygulamasının başlangıç ve bitişi için hükümet her yıl sabit bir tarih olmadan duyuru yapar

    • Bir haftadan kısa süreli bildirimler çeşitli sorunlara yol açabilir
  • Saat dilimi yazılımlarının esnekliği hakkında ilginç bir okuma

    • Yaz saati politikaları 60 dakikalık ayarlamalarla sınırlı olmayabilir
    • Bir ülke yıl boyunca sürekli değişen ofsetlere sahip olabilir
  • Hükümet yaz saati uygulamasını kaldırıp ertesi yıl saat dilimini kaydırırsa karışıklık yaşanır

    • Android uygulama geliştirmede, sistem imajına gömülü saat dilimi veritabanı nedeniyle sorunlar ortaya çıkmıştır
  • tz veritabanı, UTC ile farkı kaydeden bir diff'in diff'idir

    • Güncellemeler yapılır ve changelog git'te saklanır
    • diff^4 olarak ifade edilebilir
  • 30 dakikalık yaz saati farkı en garip saat dilimi değildir

    • Antarctica/Troll, Fas ve Gazze saat dilimlerinde sistemlerin ifade edemediği kurallar vardır
    • Artık saniyeler programcılar için faydalı değildir ve çoğunlukla göz ardı edilir