Menukar Offset Masa kepada Lokasi/Zon Waktu dalam Go
Apabila bekerja dengan data masa yang termasuk offset masa tetapi kekurangan maklumat lokasi, ia adalah perlu untuk mencipta masa yang boleh digunakan. Objek lokasi untuk merekodkan offset dengan tepat dan mengeluarkan masa relatif kepada pengguna lokasi.
Dalam Go, seseorang boleh menggunakan fungsi FixedZone untuk menentukan lokasi dengan offset tetap berbanding UTC. Sebagai contoh, untuk mencipta lokasi untuk ofset 11, gunakan kod berikut:
loc := time.FixedZone("UTC+11", +11*60*60)
Setelah lokasi ditentukan, tetapkannya kepada objek masa yang dikehendaki:
t = t.In(loc)
Ini akan melaraskan objek masa ke lokasi yang ditentukan dan masanya diimbangi.
Menjalankan kod berikut menunjukkan ini proses:
package main import ( "fmt" "time" ) func main() { loc := time.FixedZone("UTC+11", +11*60*60) t := time.Now() fmt.Println(t) fmt.Println(t.Location()) t = t.In(loc) fmt.Println(t) fmt.Println(t.Location()) fmt.Println(t.UTC()) fmt.Println(t.Location()) }
Output:
2009-11-10 23:00:00 +0000 UTC m=+0.000000001 UTC 2009-11-11 10:00:00 +1100 UTC+11 UTC+11 2009-11-10 23:00:00 +0000 UTC UTC+11
Seperti yang dilihat, masa asal (dalam UTC) dilaraskan kepada lokasi offset yang ditentukan. Output juga menunjukkan bahawa kaedah time.UTC() mengembalikan masa asal dalam UTC, manakala kaedah time.Location() mengembalikan maklumat lokasi yang dilaraskan.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Offset Masa kepada Zon Waktu dan Lokasi dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!