2 poin oleh GN⁺ 2024-10-31 | 1 komentar | Bagikan ke WhatsApp
  • Zona waktu itu rumit, tetapi karena komputer harus mengimplementasikannya, keanehannya hanya berada dalam cakupan yang terbatas.
    • Asia/Kathmandu memiliki offset yang tidak biasa dari UTC.
    • Africa/Casablanca di-hardcode karena tidak cocok dengan model zona waktu dengan baik.
    • America/Nuuk memulai waktu musim panas dari -01:00.
    • Africa/Cairo dan America/Santiago memulai waktu musim panas pada pukul 24, bukan 0.
    • Australia/Lord_Howe memiliki aturan waktu musim panas yang paling aneh.

PGXIIREAM: Paus Gregorius XIII mengendalikan segalanya

  • Sebagian besar dunia menggunakan sistem waktu yang berbasis kalender Gregorian.
  • Kalender Gregorian sangat berguna untuk menjaga posisi matahari tetap konsisten sepanjang tahun.
  • UTC adalah formalisasi modern resmi dari kalender Gregorian, dan seluruh dunia menetapkan waktu berdasarkan ini.

Detik kabisat tidak penting

  • Rotasi bumi melambat, sehingga detik kabisat ditambahkan untuk mengoreksinya.
  • Detik kabisat bisa diabaikan karena bahasa pemrograman tidak merepresentasikan detik ke-61.
  • Penyedia cloud menyelesaikan masalah ini dengan memperlambat jam selama detik kabisat.

Zona waktu yang aneh

Asia/Kathmandu memiliki offset yang tidak biasa

  • Nepal berada 5 jam 45 menit lebih cepat dari UTC.
  • Komputer dapat mengetahui informasi ini melalui basis data zona waktu IANA.

String seperti PDT atau CET tidak bermakna

  • Pengidentifikasi zona waktu bisa ambigu, dan banyak zona waktu berbagi pengidentifikasi yang sama.

Bagaimana zona waktu dengan waktu musim panas direpresentasikan?

  • Aturan transisi waktu musim panas itu rumit, dan komputer menghitung waktu lokal berdasarkan aturan tersebut.

Africa/Casablanca dan Asia/Gaza mengikuti bulan, tetapi zona waktu mengikuti matahari

  • Maroko dan Gaza menyesuaikan waktu musim panas berdasarkan Ramadan, dan ini di-hardcode.

America/Nuuk beralih ke waktu musim panas pada pukul -1

  • Greenland memulai waktu musim panas pada saat yang sama dengan Eropa, tetapi dalam waktu lokal dimulai pada pukul -1.

America/Santiago dan Africa/Cairo beralih pada pukul 24

  • Zona waktu ini beralih ke waktu musim panas pada pukul 24, yang berarti melewati ke hari berikutnya.

Australia/Lord_Howe memiliki transisi waktu musim panas yang paling aneh

  • Pulau Lord Howe memiliki transisi waktu musim panas selama 30 menit.

Ringkasan GN⁺

  • Zona waktu itu rumit, tetapi karena komputer harus mengimplementasikannya, keanehannya hanya berada dalam cakupan yang terbatas.
  • Australia/Lord_Howe adalah zona waktu paling unik karena transisi waktu musim panasnya selama 30 menit.
  • Artikel ini berguna untuk memahami kompleksitas zona waktu dan bisa menarik bagi para programmer.
  • Proyek dengan fungsi serupa termasuk tzdb.

1 komentar

 
GN⁺ 2024-10-31
Komentar Hacker News
  • Basis data tz tidak menghitung transisi zona waktu sebelum Big Bang. Stempel waktu sebelum Big Bang secara fisik diragukan

    • Misalnya, Glib masih menerapkan aturan Brasil tahun 1913 untuk menghitung stempel waktu São Paulo
    • Detik kabisat sebelum Big Bang juga tidak diizinkan
  • Zona waktu Afrika/Addis_Ababa tidak diikuti oleh siapa pun di Etiopia

    • Penduduk setempat menggunakan waktu dengan offset 6 jam
    • Siklus AM dimulai saat fajar, dan siklus PM dimulai saat senja
  • Tidak benar bahwa bahasa pemrograman tidak dapat merepresentasikan menit dengan 61 detik

    • Raku mendukung detik kabisat
    • DateTime.pm di Perl 5 juga mendukung detik kabisat, yang menambah kompleksitas
    • Detik kabisat hampir tidak pernah digunakan dan meningkatkan kompleksitas kode
  • Zona waktu Asia/Jerusalem rumit karena persoalan agama dan negara

    • Karena alasan keagamaan, waktu musim panas ditentukan lewat negosiasi setiap tahun
    • Ada pengecualian agar waktu musim panas tidak berakhir pada Rosh HaShanah
  • Pengalaman menulis fungsi untuk menemukan waktu lokal berdasarkan alamat di AS

    • Memetakan negara bagian dan zona waktu secara statis sulit karena adanya edge case
    • Membeli dan memakai CSV yang memetakan kode ZIP dan offset UTC
    • Zona waktu yang rumit ada karena wilayah seberang laut AS dan pangkalan militer
  • Zona waktu Palestina diumumkan pemerintah setiap tahun untuk awal dan akhir waktu musim panas tanpa tanggal tetap

    • Pemberitahuan kurang dari seminggu dapat menimbulkan berbagai masalah
  • Bacaan menarik tentang fleksibilitas perangkat lunak zona waktu

    • Kebijakan waktu musim panas tidak harus terbatas pada penyesuaian 60 menit
    • Suatu negara dapat memiliki offset yang terus berubah sepanjang tahun
  • Kekacauan terjadi ketika pemerintah menghapus waktu musim panas lalu memindahkan zona waktu pada tahun berikutnya

    • Saat mengembangkan aplikasi Android, masalah muncul karena basis data zona waktu yang tertanam dalam system image
  • Basis data tz adalah diff dari diff yang mencatat perbedaan terhadap UTC

    • Pembaruan terus dilakukan, dan changelog disimpan di git
    • Dapat diekspresikan sebagai diff^4
  • Selisih waktu musim panas 30 menit bukan zona waktu yang paling aneh

    • Antartika/Troll, Maroko, dan Gaza memiliki aturan yang tidak dapat direpresentasikan sistem
    • Detik kabisat tidak berguna bagi programmer dan sebagian besar diabaikan