Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menukar Offset Masa kepada Zon Waktu dalam Go?

Bagaimana untuk Menukar Offset Masa kepada Zon Waktu dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-12-17 04:59:25515semak imbas

How to Convert a Time Offset to a Time Zone in Go?

Menukar Offset Masa kepada Lokasi/Zon Waktu dalam Go

Apabila bekerja dengan data sensitif masa, selalunya perlu menukar masa mengimbangi kepada masa yang boleh digunakan.Objek lokasi. Ini membenarkan perwakilan tepat dan manipulasi nilai masa berbanding zon waktu tertentu.

Sebagai contoh, pertimbangkan coretan kod berikut:

func main() {
    offset := "+1100"

    t, err := time.Parse("15:04 GMT-0700","15:06 GMT"+offset)
    if err != nil {
        fmt.Println("fail", err)
    }
    fmt.Println(t)
    fmt.Println(t.UTC())
    fmt.Println(t.Location())
}

Semasa kod ini menghuraikan nilai masa dengan yang ditentukan mengimbangi, memanggil t.Location() selepas itu tidak mengembalikan maklumat yang bermakna.

Untuk menangani isu ini, kita perlu secara manual cipta masa.Objek lokasi yang mewakili offset masa yang dikehendaki. Ini boleh dicapai menggunakan masa.Fungsi Zon Tetap:

loc := time.FixedZone("UTC+11", +11*60*60)

Pembolehubah lokasi ialah masa.Objek lokasi yang mewakili zon waktu UTC 11. Kami kemudiannya boleh menetapkan pembolehubah t kami untuk berada di lokasi ini:

t = t.In(loc)

Dengan berbuat demikian, kami memastikan bahawa ofset GMT direkodkan dan kami boleh mengeluarkan masa berbanding dengan offset masa lokasi sebenar pengguna akhir .

Berikut ialah contoh:

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())
}

Kod ini mengeluarkan berikut:

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 anda lihat, masa t kini berada dalam zon waktu UTC 11 dan Lokasinya() mengembalikan maklumat yang sesuai. Ini membolehkan operasi dan pengiraan berasaskan masa yang tepat.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Offset Masa kepada Zon Waktu 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