Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menghuraikan Cap Masa Unix dengan Betul dalam Go?

Bagaimanakah Saya Boleh Menghuraikan Cap Masa Unix dengan Betul dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-12-18 21:20:15441semak imbas

How Can I Correctly Parse Unix Timestamps in Go?

Menghuraikan cap masa Unix dalam Go

Menghuraikan cap masa Unix dalam Go mungkin kelihatan mudah, tetapi ia boleh membawa kepada ralat yang tidak dijangka. Artikel ini meneroka isu yang biasa dihadapi dan menyediakan penyelesaian.

Pernyataan Masalah

Pertimbangkan coretan kod berikut:

package main

import "fmt"
import "time"

func main() {
    tm, err := time.Parse("1136239445", "1405544146")
    if err != nil{
        panic(err)
    }

    fmt.Println(tm)
}

Matlamatnya ialah untuk menukar cap waktu Unix "1405544146" kepada objek masa.Masa. Walau bagaimanapun, menjalankan kod ini mengakibatkan ralat:

panic: parsing time "1405544146" as "1136239445": cannot parse "1405544146" as "06:20:23.9445"

Penyelesaian

Fungsi time.Parse direka untuk menghuraikan rentetan masa menggunakan reka letak yang ditentukan. Dalam kes ini, reka letak "1136239445" tidak sepadan dengan format cap waktu Unix. Untuk menghuraikan cap waktu Unix, anda perlu menggunakan perwakilan integer.

Daripada menggunakan masa.Parse, anda boleh menggunakan strconv.ParseInt untuk menghuraikan rentetan kepada int64 dan kemudian mencipta cap masa menggunakan time.Unix:

package main

import (
    "fmt"
    "time"
    "strconv"
)

func main() {
    i, err := strconv.ParseInt("1405544146", 10, 64)
    if err != nil {
        panic(err)
    }
    tm := time.Unix(i, 0)
    fmt.Println(tm)
}

Output:

2014-07-16 20:55:46 +0000 UTC

Dengan menggunakan strconv.ParseInt, anda boleh mengelakkan ralat berkaitan reka letak dan berjaya menghuraikan cap masa Unix.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Cap Masa Unix dengan Betul 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