Rumah >pembangunan bahagian belakang >Golang >Mengapakah `time.Parse()` Go Gagal Menghuraikan Pengecam Zon Waktu Dengan Tepat?
Go's Time.Parse() Tidak Menghuraikan Pengecam Zon Waktu
Dalam kod yang disediakan, fungsi time.Parse() digunakan untuk menghuraikan rentetan menjadi masa.Objek masa. Walau bagaimanapun, fungsi itu tidak menghuraikan pengecam zon waktu dalam rentetan, menghasilkan objek masa yang tidak tepat.
Menurut dokumentasi masa.Parse(), gelagat lalai fungsi adalah menggunakan zon waktu lokasi semasa apabila menemui singkatan zon seperti MST. Ini menerangkan sebab baris pertama dan ketiga dalam output tidak betul kerana lokasi semasa ditetapkan kepada CST. Khususnya, rentetan "EDT" ditafsirkan sebagai "Waktu Siang Timur", dan pengimbangan zon waktu untuk CST digunakan, iaitu -0500.
Untuk mengelakkan isu ini dan menghuraikan pengecam zon waktu dengan betul, masa.ParseInLocation () fungsi boleh digunakan. Fungsi ini memerlukan anda untuk menentukan lokasi yang akan digunakan semasa menghuraikan rentetan masa. Dalam kes ini, lokasi "America/New_York" boleh digunakan untuk menghuraikan pengecam zon waktu "EDT" dengan betul.
Sebagai alternatif, rentetan reka letak dalam masa.Parse() boleh diubah suai untuk menyatakan secara eksplisit offset dalam rentetan susun atur itu sendiri, seperti:
format := "2006 01 02 15:04 -0400 MST" tn, _ := time.Parse(format, date)
Menggunakan salah satu kaedah ini akan memastikan bahawa time.Parse() menghuraikan pengecam zon waktu dengan tepat dan mencipta objek masa.Masa dengan offset yang betul.
Atas ialah kandungan terperinci Mengapakah `time.Parse()` Go Gagal Menghuraikan Pengecam Zon Waktu Dengan Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!