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
Lepaskan: 2024-12-18 21:20:15
asal
457 orang telah melayarinya

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

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

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

Output:

2014-07-16 20:55:46 +0000 UTC
Salin selepas log masuk

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!

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