Menukar Offset Masa kepada Lokasi/Zon Waktu dalam Go
Apabila bekerja dengan zon waktu dan offset, adalah perkara biasa untuk menghadapi senario di mana anda perlu tukar offset masa mentah, diwakili sebagai rentetan, kepada objek lokasi yang boleh digunakan dalam Go. Ini boleh dicapai dengan mudah menggunakan kaedah yang disediakan oleh pakej masa.
Andaikan anda telah memperoleh masa offset sembarangan, seperti " 1100". Untuk mencipta masa.Objek lokasi yang mewakili ofset ini, hanya gunakan fungsi FixedZone seperti berikut:
loc := time.FixedZone("UTC+11", +11*60*60)
Fungsi ini mencipta lokasi dengan nama yang ditentukan dan mengimbangi dalam beberapa saat.
Untuk mengaitkan masa dengan lokasi yang baru dibuat ini, gunakan kaedah Dalam:
t = t.In(loc)
Operasi ini mengubah suai masa t kepada mencerminkan lokasi yang ditentukan dan mengemas kini offsetnya dengan sewajarnya.
Berikut ialah contoh yang menunjukkan penukaran dan output masa berikutnya dalam konteks yang berbeza:
package main import ( "fmt" "time" ) func main() { loc := time.FixedZone("UTC+11", +11*60*60) t := time.Now() // Output the original time and location fmt.Println(t) // Output: 2023-09-13 18:37:08.729331723 +0000 UTC fmt.Println(t.Location()) // Output: UTC // Apply the new location to the time t = t.In(loc) // Output the modified time and location fmt.Println(t) // Output: 2023-09-14 05:37:08.729331723 +1100 UTC+11 fmt.Println(t.Location()) // Output: UTC+11 // Output the UTC equivalent of the modified time fmt.Println(t.UTC()) // Output: 2023-09-13 18:37:08.729331723 +0000 UTC fmt.Println(t.Location()) // Output: UTC+11 }
Kod ini mempamerkan cara anda boleh menukar mengimbangi masa ke dalam objek lokasi dan menggunakannya pada masa untuk mendapatkan perwakilan yang tepat berkenaan dengan zon waktu yang berbeza.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Offset Masa kepada Objek Time.Location dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!