Membina masa.Masa dengan Offset Zon Masa
Apabila bekerja dengan log, adalah perkara biasa untuk menghadapi cap masa dengan offset zon waktu. Untuk menghuraikan dan mewakili cap masa ini dengan tepat, adalah penting untuk memahami cara mencipta masa. Objek masa yang merangkumi ofset zon waktu.
Dalam konteks ini, ofset zon waktu mewakili perbezaan antara waktu tempatan dan Waktu Sejagat Selaras (UTC). Ofset positif menunjukkan zon waktu mendahului UTC, manakala ofset negatif menunjukkan ia berada di belakang UTC.
Menggunakan masa.FixedZone()
Satu cara untuk membina masa.Objek masa dengan zon waktu yang diimbangi adalah menggunakan fungsi masa.Zon Tetap(). Fungsi ini mencipta masa.Lokasi dengan ofset tetap.
Contohnya:
loc := time.FixedZone("myzone", -8*3600) nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, loc) fmt.Println(nativeDate)
Kod di atas mencipta masa.Lokasi bernama "myzone" dengan offset -8 jam, mewakili zon waktu 8 jam di belakang UTC. Fungsi time.Date() kemudiannya membina masa.Masa dengan tahun, bulan, hari, jam, minit, saat dan zon waktu yang ditentukan diimbangi.
Menggunakan masa.Parse()
Jika ofset zon waktu tersedia sebagai rentetan, fungsi time.Parse() boleh digunakan untuk mencipta objek masa.Time dengan ofset yang betul. Rentetan reka letak dengan hanya mengimbangi zon rujukan (-0700) harus digunakan.
Contohnya:
t, err := time.Parse("-0700", "-0800") fmt.Println(t, err)
Hasil menghuraikan pengimbangan zon waktu " 0800" mencipta masa. Objek masa dengan offset -8 jam. Ini membolehkan penukaran mudah daripada perwakilan rentetan kepada masa sedar zon masa. Objek masa.
Contoh
Menggunakan teknik ini, masalah asal menghuraikan log Apache cap waktu dengan offset -0800 boleh diselesaikan 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)
Kod ini mencipta masa.Masa dengan betul objek dengan tarikh yang ditentukan dan -0800 zon waktu mengimbangi.
Atas ialah kandungan terperinci Bagaimana untuk Membina Objek Masa.Masa dengan Offset Zon Masa dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!