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!