Rumah >pembangunan bahagian belakang >Golang >Mengapakah `time.Parse` Go Mengabaikan Maklumat Zon Waktu?
Mengapa Time.Parse Tidak Menggunakan Maklumat Zon Waktu
Fungsi masa.Parse direka untuk menghuraikan rentetan masa dan menjana yang sepadan masa.Nilai objek. Walau bagaimanapun, ia tidak mengambil kira maklumat zon waktu. Tingkah laku ini boleh membawa kepada hasil yang tidak dijangka apabila menghuraikan rentetan masa yang termasuk singkatan zon waktu.
Pertimbangkan coretan kod berikut:
import "time" func main() { t, err := time.Parse("2006-01-02 MST", "2018-05-11 IST") if err != nil { return } t2, err := time.Parse("2006-01-02 MST", "2018-05-11 UTC") if err != nil { return } fmt.Println(t.Unix()) fmt.Println(t2.Unix()) }
Kod ini menghuraikan dua rentetan masa, "2018-05-11 IST" dan "2018-05-11 UTC", dan mencetak cap waktu Unix masa yang terhasil nilai. Walau bagaimanapun, outputnya mengejutkan:
1525996800 1525996800
Kedua-dua cap masa adalah sama, walaupun rentetan masa merujuk kepada zon waktu yang berbeza. Ini kerana time.Parse mengabaikan maklumat zon waktu apabila menghuraikan rentetan masa. Ia menganggap rentetan masa seolah-olah berada dalam zon waktu setempat dan ia tidak melaraskan untuk sebarang zon waktu yang diimbangi.
Untuk menyelesaikan isu ini, anda boleh menggunakan salah satu pendekatan berikut:
Atas ialah kandungan terperinci Mengapakah `time.Parse` Go Mengabaikan Maklumat Zon Waktu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!