Bagaimanakah saya boleh menghuraikan rentetan masa dengan zon waktu tertentu dalam Go?

DDD
Lepaskan: 2024-10-25 09:24:28
asal
932 orang telah melayarinya

How can I parse a time string with a specific timezone in Go?

Menyesuaikan Penghuraian Zon Waktu

Apabila menghuraikan rentetan masa ke dalam struct masa menggunakan masa.ParseTime(), anda mungkin perasan bahawa struct yang terhasil sentiasa mewakili masa dalam UTC, walaupun anda menentukan zon waktu dalam rentetan reka letak. Ini boleh menjadi isu jika anda memerlukan masa untuk berada dalam zon waktu tertentu tanpa perlu menukarnya.

Untuk menangani perkara ini, anda boleh menggunakan masa.ParseInLocation(), yang membolehkan anda menghuraikan rentetan masa dengan eksplisit maklumat zon waktu. Dengan menyediakan objek masa.Lokasi, anda boleh menentukan zon waktu yang diingini untuk masa yang dihuraikan.

Berikut ialah contoh yang menunjukkan perbezaan antara masa.ParseTime() dan masa.ParseInLocation():

<code class="go">package main

import (
    "fmt"
    "time"
)

func main() {
    // Parsing with time.ParseTime() assumes UTC.
    t, _ := time.ParseTime("2006-01-02 15:04", "2023-03-08 12:00")
    fmt.Println(t) // 2023-03-08 12:00:00 +0000 UTC

    // Parsing with time.ParseInLocation() uses the specified timezone (CET).
    loc, _ := time.LoadLocation("CET")
    t, _ = time.ParseInLocation("2006-01-02 15:04", "2023-03-08 12:00", loc)
    fmt.Println(t) // 2023-03-08 12:00:00 +0100 CET
}</code>
Salin selepas log masuk

Dalam contoh ini, time.ParseTime() menghasilkan objek masa dalam UTC, manakala time.ParseInLocation() menghasilkan objek masa dalam zon waktu CET yang ditentukan.

Menggunakan Zon Waktu Setempat

Jika anda ingin menggunakan zon waktu tempatan anda, anda boleh menggunakan masa.Local sebagai hujah Lokasi kepada masa.ParseInLocation(). masa. Tempatan mewakili zon waktu tempatan sistem semasa.

Berikut ialah contoh yang dikemas kini:

<code class="go">package main

import (
    "fmt"
    "time"
)

func main() {
    t, _ := time.ParseInLocation("2006-01-02 15:04", "2023-03-08 12:00", time.Local)
    fmt.Println(t) // 2023-03-08 12:00:00 +0800 CST
}</code>
Salin selepas log masuk

Dalam kes ini, objek masa akan dihuraikan menggunakan zon waktu setempat, yang dalam contoh ialah CST (Masa Standard China).

Ingat masa itu.ParseInLocation() hanya akan menghuraikan rentetan masa tanpa maklumat zon waktu. Jika anda mempunyai rentetan masa dengan zon waktu yang jelas, anda harus menggunakan masa. Parse() sebaliknya.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menghuraikan rentetan masa dengan zon waktu tertentu 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!