Rumah >pembangunan bahagian belakang >Golang >Mengapa `time.Parse` Tidak Menggunakan Maklumat Zon Waktu Dengan Betul?
Masa.Menghuraikan Tidak Menggunakan Maklumat Zon Waktu
S: Mengapa masa.Menghuraikan tidak menggunakan maklumat zon waktu? Ia sepatutnya menghasilkan nilai masa yang berbeza untuk zon waktu yang berbeza.
Dalam kod contoh yang disediakan, fungsi masa.Haharai digunakan untuk menghuraikan dua cap masa, "2018-05-11 IST" dan "2018-05 -11 UTC", menggunakan reka letak "2006-01-02 MST". Walau bagaimanapun, output menunjukkan bahawa kedua-dua cap masa menghasilkan masa Unix yang sama:
Output: 1525996800 1525996800
Ini tidak masuk akal kerana IST dan UTC mempunyai offset masa yang berbeza.
J: Singkatan Zon Waktu Ambiguous dan Zero Offset
Punca isu ini terletak pada pengendalian ambiguous singkatan zon waktu dalam masa. Parse. Khususnya, jika tiada offset yang diketahui untuk singkatan zon waktu yang diberikan, time. Parse menganggap zon waktu dengan singkatan yang sama dan offset sifar.
Dalam contoh yang disediakan, "IST" ialah singkatan samar-samar yang boleh merujuk kepada berbilang zon waktu (India, Ireland, Israel, dll.). Oleh itu, time.Parse mentafsirkannya sebagai zon waktu rekaan dengan offset sifar, dengan berkesan mengabaikan perbezaan masa sebenar antara IST dan UTC.
Penyelesaian: Menggunakan Offset Zon Waktu Numerik atau Masa.ParseInLocation()
Untuk menyelesaikan isu ini, terdapat beberapa pilihan tersedia:
Atas ialah kandungan terperinci Mengapa `time.Parse` Tidak Menggunakan Maklumat Zon Waktu Dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!