Jam javascript beberapa zona waktu

Jika aplikasi Anda menyertakan informasi tanggal dan waktu, ada kemungkinan besar Anda harus berurusan dengan zona waktu. Singkatnya, itu membutuhkan penambahan atau pengurangan jam ke nilai DateTime untuk mengekspresikannya di zona waktu lain. Kedengarannya cukup sederhana di permukaan. Namun, dalam praktiknya, ini sangat menakutkan. Anda tidak hanya perlu menentukan zona waktu dari kedua lokasi, tetapi Anda bahkan mungkin harus memperhitungkan perubahan zona waktu karena alasan politik dan/atau ekonomi. Selain itu, Anda mungkin harus berurusan dengan kekejian yang dikenal sebagai Daylight Savings Time. Akhirnya, seolah-olah menambah penghinaan, fasilitas asli JavaScript untuk bekerja dengan zona waktu sangat buruk, sehingga Anda mungkin harus melakukan semua jenis perhitungan tanggal dan waktu yang rumit sendiri.

Apakah Anda sudah terintimidasi? . “Kamu akan menjadi. Anda akan menjadi. ” Mengesampingkan semuanya, tutorial ini bertujuan untuk mempersiapkan Anda berperang dengan memberikan pandangan sekilas tentang medan perang dan senjata yang Anda perlukan untuk berhasil. wise old Yoda once said: “You will be. You will be.” All kidding aside, this tutorial aims to prepare you for battle by providing a bird’s eye view of the battlefield and weapons that you’ll need to be successful.

Kenali Musuhmu

Sebenarnya, zona waktu adalah hal yang baik; . Tanpa zona waktu, itu akan menjadi fajar pukul 7 malam di suatu tempat. Dengan membagi Bumi menjadi 24 zona waktu yang sama yang mengikuti matahari, setiap orang mendapatkan siang dan malam yang terjadi pada waktu (jam) yang sama.

Setiap zona waktu ditentukan oleh offset (perbedaannya) dari Coordinated Universal Time (UTC), standar waktu dunia. Waktu UTC berubah 1 jam maju dan mundur, sesuai dengan perbedaan 1 jam dalam waktu matahari rata-rata untuk setiap 15 derajat timur atau barat meridian utama (bujur 0°) di Greenwich, pinggiran kota London, di Britania Raya. Offset dinyatakan sebagai UTC- atau UTC+ dan jumlah jam dan menit

Setidaknya, itulah gambaran umumnya. Pada kenyataannya, zona waktu telah disesuaikan dengan perbatasan internal dan internasional sehingga kita mendapatkan sesuatu yang terlihat seperti ini

Lebih buruk lagi, banyak wilayah menggunakan Daylight Saving Time (DST), yang mengubah nama zona waktu dan waktu selama periode DST. Area yang tidak menggunakan DST tetap berada dalam zona waktu standar sepanjang tahun. Misalnya, California menggunakan Waktu Siang Pasifik (PDT) selama periode DST tetapi Waktu Standar Pasifik (PST) selama sisa tahun tersebut

Oke, itu buruk. Tunggu;

Nama dan Singkatan Zona Waktu Lokal

Untuk menambah bahan bakar ke api, banyak daerah menerapkan nama zona waktu lokal mereka sendiri dalam zona waktu yang sama. Misalnya, Miami, Florida, 5 jam di belakang UTC (UTC-5), dan zona waktu standarnya adalah Waktu Standar Bagian Timur (EST). Sementara itu, Havana, zona waktu lokal Kuba, disebut Waktu Standar Kuba (CST), meskipun berada di zona waktu yang sama UTC-5

Namun sumber kebingungan lainnya adalah bahwa beberapa nama zona waktu di tempat yang sama sekali berbeda menggunakan singkatan yang sama persis. Misalnya, Waktu Standar India (IST) dan Waktu Standar Israel (IST) memiliki singkatan yang sama, meskipun memiliki offset UTC+5 yang sama sekali berbeda. 30 dan UTC+2. 00. (Apakah saya menyebutkan bahwa beberapa offset zona waktu mencakup setengah jam, mis. e. , UTC+5. 30?)

Lokalisasi Zona Waktu dalam JavaScript

Objek Tanggal JavaScript mewakili satu momen dalam waktu dalam format platform-independen. Objek tanggal berisi angka yang mewakili jumlah milidetik yang telah berlalu sejak tengah malam pada tanggal 1 Januari 1970, UTC. Oleh karena itu, nilai waktu di inti objek Tanggal adalah UTC, sedangkan metode yang mengambil tanggal dan waktu atau komponennya semuanya mengembalikan nilai dalam lokal (i. e. , sistem host) zona waktu dan offset

Ada beberapa metode penting yang tidak secara otomatis melokalkan hasil

  1. Metode getTime() mengembalikan jumlah milidetik sejak tahun 1970, waktu UTC, tanpa pelokalan
  2. Metode toISOString() selalu mengembalikan tanggal dalam waktu UTC, yang dikonfirmasi dengan huruf “Z” di akhir string. Itu singkatan dari Zona waktu nol, menunjukkan bahwa ia memiliki offset 0 dari Waktu Universal Terkoordinasi (UTC), serta Zona Waktu Zulu, yang sering digunakan dalam penerbangan dan militer sebagai nama lain untuk UTC +0

Kita dapat melihat lokalisasi JS beraksi dengan membuat tanggal baru "01-01-2020". Tanpa data waktu, JavaScript menyetelnya ke tengah malam di London. Saat saya mengeluarkan tanggal yang disimpan, itu disajikan dengan offset zona waktu lokal saya "GMT-0500", yang sebenarnya adalah awal Malam Tahun Baru di sini di Amerika Utara

Jam javascript beberapa zona waktu

 

GMT adalah singkatan dari Greenwich Mean Time, yang merupakan waktu jam di Royal Observatory di Greenwich, AS. K. terletak di garis bujur 0. Sistem GMT menjadi standar waktu dunia hingga Jan. 1, 1972

Jam javascript beberapa zona waktu

Perpustakaan Tanggal/Waktu JavaScript untuk Penyelamatan

Beberapa perpustakaan khusus telah dipangkas untuk membuat tanggal berfungsi di beberapa zona waktu. Ini termasuk

  1. momen. js
  2. tanggal-fns
  3. Luxon
  4. hariJS
  5. MS
  6. js-joda
  7. Ruang waktu

Momen. js masih secara luas dianggap sebagai raja pustaka tanggal JavaScript, meskipun ditetapkan sebagai proyek lama oleh pengelolanya pada tahun 2020. Siapa yang akan bangkit untuk mengklaim supremasi perpustakaan tanggal JS masih harus dilihat

Kesimpulan

Saya pernah mengajukan pertanyaan kepada dewan komunitas pengembang populer tentang cara terbaik merancang aplikasi yang menangani beberapa zona waktu. Jawaban mereka. jangan. Jadi, tentu saja, saya melakukannya. Sejak itu saya memahami peringatan mereka yang mengerikan. Setelah mendapatkan beberapa pengalaman dengan manajemen zona waktu, saya akan membagikan apa yang telah saya pelajari untuk memudahkan mereka yang mengikuti. Dalam artikel mendatang, kami akan melakukan beberapa penghitungan zona waktu umum menggunakan beberapa pustaka di atas

 


Rob Gravelle tinggal di Ottawa, Kanada, dan telah menjadi guru TI selama lebih dari 20 tahun. Saat itu, Rob telah membangun sistem untuk organisasi terkait intelijen seperti Layanan Perbatasan Kanada dan berbagai bisnis komersial. Di waktu senggangnya, Rob telah menjadi artis musik yang berprestasi dengan beberapa CD dan rilisan digital