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
Lepaskan: 2024-12-17 04:59:25
asal
514 orang telah melayarinya

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())
}
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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())
}
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan