Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Menghuraikan Rentetan Masa dengan Zon Waktu Tertentu dalam Go?

Bagaimana Menghuraikan Rentetan Masa dengan Zon Waktu Tertentu dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-10-24 18:03:02564semak imbas

How to Parse a Time String with a Specific Time Zone in Go?

Menghuraikan Masa dengan Zon Waktu Tertentu

Anda boleh menggunakan masa.ParseTime() untuk mendapatkan struct masa daripada rentetan. Ia memerlukan rentetan susun atur sebagai hujah, yang menentukan format rentetan input. Rentetan reka letak mesti sepadan dengan format rentetan input dengan tepat.

Jika anda perlu menghuraikan rentetan masa yang merangkumi zon waktu, anda boleh menggunakan masa.ParseInLocation(). Fungsi ini mengambil rentetan reka letak dan lokasi sebagai hujah. Lokasi boleh menjadi masa. Nilai lokasi atau rentetan yang mewakili nama zon waktu.

Sebagai contoh, kod berikut menghuraikan rentetan masa yang merangkumi zon waktu:

<code class="go">import (
    "fmt"
    "time"
)

func main() {
    const layout = "2006-01-02 15:04"
    const timeStr = "2012-07-09 05:02:00 +0000 CEST"

    t, err := time.ParseInLocation(layout, timeStr, time.Local)
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println(t)
}</code>

Ini kod akan mencetak output berikut:

2012-07-09 05:02:00 +0000 CEST

Fungsi time.ParseInLocation() akan menghuraikan rentetan masa mengikut rentetan reka letak dan lokasi yang ditentukan. Dalam kes ini, rentetan reka letak ialah "2006-01-02 15:04" dan lokasinya ialah "CEST". Fungsi time.ParseInLocation() akan mengembalikan masa.Nilai masa yang mewakili masa yang dihuraikan.

Jika anda tidak menentukan lokasi, fungsi time.ParseInLocation() akan menggunakan zon waktu setempat. Ini bermakna masa yang dihuraikan akan ditukar kepada zon waktu tempatan.

Anda boleh mengelakkan ini dengan mencipta masa.Nilai masa dengan zon masa dan masa yang betul:

<code class="go">import (
    "fmt"
    "time"
)

func main() {
    const layout = "2006-01-02 15:04"
    const timeStr = "2012-07-09 05:02:00"
    const timeZone = "CEST"

    pz, err := time.LoadLocation(timeZone)
    if err != nil {
        fmt.Println(err)
        return
    }

    t, err := time.Parse(layout, timeStr)
    if err != nil {
        fmt.Println(err)
        return
    }

    T := t.In(pz)

    fmt.Println(T)
}</code>

Ini kod akan mencetak output berikut:

2012-07-09 05:02:00 +0200 CEST

Output kod ini menunjukkan masa dalam zon waktu yang betul.

Atas ialah kandungan terperinci Bagaimana Menghuraikan Rentetan Masa dengan Zon Waktu Tertentu 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