Membina masa.Masa dengan Offset Zon Waktu
Dalam bidang penyimpanan masa, adalah penting untuk mengendalikan zon waktu dengan tepat untuk aplikasi yang canggih. Ini melibatkan membina masa. Kejadian masa yang menggabungkan offset zon waktu tertentu.
Mari kita ambil contoh entri log Apache:
[07/Mar/2004:16:47:46 -0800]
Selepas berjaya menghuraikan komponen individu (tahun, bulan, hari , jam, minit, saat dan zon waktu), langkah seterusnya ialah membina masa. Contoh masa yang menggabungkan "-0800" zon waktu mengimbangi.
Menggunakan masa.FixedZone()
Untuk tujuan ini, anda boleh menggunakan masa.FixedZone(). Fungsi ini membolehkan anda membina masa. Lokasi dengan ofset tetap. Berikut ialah contoh:
loc := time.FixedZone("myzone", -8*3600) nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, loc) fmt.Println(nativeDate)
Output:
2019-02-06 00:00:00 -0800 myzone
Menggunakan masa.Parse()
Jika offset zon waktu tersedia sebagai rentetan, anda boleh menggunakan time.Parse() untuk mentafsirnya. Guna rentetan reka letak yang hanya mengandungi offset zon rujukan:
t, err := time.Parse("-0700", "-0800") fmt.Println(t, err)
Output:
0000-01-01 00:00:00 -0800 -0800 <nil>
Seperti yang terbukti daripada output, masa yang terhasil. Masa mempunyai zon offset -0800 jam.
Lengkap Contoh
Menggabungkan teknik di atas, contoh asal boleh ditulis semula seperti berikut:
t, err := time.Parse("-0700", "-0800") if err != nil { panic(err) } nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, t.Location()) fmt.Println(nativeDate)
Output:
2019-02-06 00:00:00 -0800 -0800
Atas ialah kandungan terperinci Bagaimana untuk Membina Time.Time Instance dengan Offset Zon Waktu Tertentu dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!