Rumah >pembangunan bahagian belakang >Golang >Bagaimana Menukar UTC kepada Waktu Tempatan dengan Tepat dalam Go?

Bagaimana Menukar UTC kepada Waktu Tempatan dengan Tepat dalam Go?

Patricia Arquette
Patricia Arquetteasal
2025-01-04 09:31:35141semak imbas

How to Accurately Convert UTC to Local Time in Go?

Cara Menukar UTC kepada Waktu Tempatan dalam Go

Pernyataan Masalah

Menukar waktu UTC kepada waktu tempatan boleh menjadi satu cabaran, terutamanya apabila mengambil kira masa variasi zon. Dalam Go, sesetengah pengguna telah menemui hasil yang salah apabila cuba menambah tempoh mengimbangi masa UTC pada masa semasa.

Penyelesaian

Isunya terletak pada pengendalian zon waktu. Semasa menambah tempoh mengimbangi masa boleh melaraskan nilai masa, ia tidak mengambil kira peraturan zon waktu tertentu dan perubahan DST (Waktu Penjimatan Siang). Untuk menukar UTC kepada waktu tempatan dengan tepat, cara yang betul ialah menggunakan masa.Fungsi LoadLocation.

Contoh Kod

Kod berikut menunjukkan cara menggunakan masa.LoadLocation untuk mendapatkan waktu tempatan secara khusus lokasi:

var countryTz = map[string]string{
    "Hungary": "Europe/Budapest",
    "Egypt":   "Africa/Cairo",
}

func timeIn(name string) time.Time {
    loc, err := time.LoadLocation(countryTz[name])
    if err != nil {
        panic(err)
    }
    return time.Now().In(loc)
}

func main() {
    utc := time.Now().UTC().Format("15:04")
    hun := timeIn("Hungary").Format("15:04")
    eg := timeIn("Egypt").Format("15:04")
    fmt.Println(utc, hun, eg)
}

Dalam contoh ini, countryTz mentakrifkan peta negara dan nama zon waktu yang sepadan. Fungsi timeIn memuatkan zon waktu yang sesuai dan menukar masa semasa kepada waktu tempatan dalam zon waktu itu.

Dengan menggunakan time.LoadLocation, kod memastikan peraturan zon waktu dan pelarasan DST diambil kira, memberikan waktu tempatan yang tepat.

Atas ialah kandungan terperinci Bagaimana Menukar UTC kepada Waktu Tempatan dengan Tepat 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