Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membina Time.Time Instance dengan Offset Zon Waktu Tertentu dalam Go?

Bagaimana untuk Membina Time.Time Instance dengan Offset Zon Waktu Tertentu dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-03 18:28:11700semak imbas

How to Construct a time.Time Instance with a Specific Timezone Offset in Go?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn