Rumah > Artikel > pembangunan bahagian belakang > Mengapakah `time.Parse()` Go Gagal dengan Singkatan Zon Waktu Samar-samar?
Time.Parse() Tidak Dapat Memproses Maklumat Zon Waktu Kerana Singkatan Kabur
Fungsi masa.Parse(), apabila cuba mentafsir cap masa dengan singkatan zon waktu (cth., "MST"), menghadapi beberapa batasan. Khususnya, jika zon waktu yang disingkatkan tidak ditakrifkan secara eksplisit di lokasi semasa atau jika ia samar-samar (seperti "IST", yang boleh mewakili berbilang zon waktu), fungsi tersebut menganggap lokasi fabrikasi dengan offset sifar.
Ini tingkah laku mengakibatkan percanggahan apabila menghuraikan dan membandingkan cap masa dengan singkatan zon waktu yang berbeza. Contohnya, dalam kod yang diberikan:
t, err := time.Parse("2006-01-02 MST", "2018-05-11 IST") t2, err := time.Parse("2006-01-02 MST", "2018-05-11 UTC")
Walaupun mewakili detik masa yang berbeza dalam zon waktu masing-masing, kedua-dua "2018-05-11 UTC" dan "2018-05-11 UTC" dihuraikan mengikut masa. Parse() sebagai mempunyai offset sifar yang sama. Akibatnya, cap masa Unix mereka adalah sama, menunjukkan nilai masa yang sama.
Untuk mengatasi isu ini, pertimbangkan untuk menggunakan reka letak masa dengan zon berangka mengimbangi, seperti "-0700" untuk perbezaan tujuh jam daripada UTC . Sebagai alternatif, pertimbangkan untuk menggunakan masa.ParseInLocation() dengan FixedZone yang dibina secara manual atau memuatkan lokasi zon waktu tertentu (cth., "Asia/Kolkata" untuk IST India). Pendekatan ini memberikan kawalan yang lebih tepat ke atas pengendalian zon waktu dan memastikan penghuraian masa yang tepat.
Atas ialah kandungan terperinci Mengapakah `time.Parse()` Go Gagal dengan Singkatan Zon Waktu Samar-samar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!