Rumah >pembangunan bahagian belakang >Golang >Tukarkan 00:33 kepada tempoh dalam golang
Saya mempunyai rentetan "12:34" dalam format "mm:ss" dan saya mahu menukarnya kepada masa.duration. Terlalu banyak masa telah terbuang untuk ini. Apa yang saya lakukan salah dalam kod ini:
package main import ( "fmt" "strings" "time" ) func parseDuration(input string) (time.Duration, error) { var layout string if strings.Count(input, ":") == 1 { layout = "04:05" } else { layout = "15:04:05" } t, err := time.Parse(layout, input) if err != nil { return 0, err } return t.Sub(time.Time{}), nil } func main() { input := "00:04" duration, err := parseDuration(input) if err != nil { fmt.Println(err) return } fmt.Println(int(duration.Seconds())) // I should get 4 but I get -31622396 }
https://go.dev/play/p/a-ehc-eptrd
Nilai sifar masa jenis ialah 1 Januari, 1 tahun 00:00:00.000000000 utc.
func parseduration(input string) (time.duration, error) { var layout string if strings.count(input, ":") == 1 { layout = "04:05" } else { layout = "15:04:05" } t, err := time.parse(layout, input) if err != nil { return 0, err } return t } fmt.println(time.time{}) // this prints 0001-01-01 00:00:00 +0000 utc fmt.println(parseduration("00:04")) // this prints 0000-01-01 00:00:04 +0000 utc
Dalam kes anda, anda harus mentakrifkan start
对象,而不是直接使用 time.time{}
. Contohnya,
package main import ( "fmt" "strings" "time" ) var origin = time.Date(0, 1, 1, 0, 0, 0, 0, time.UTC) func parseDuration(input string) (time.Duration, error) { var layout string if strings.Count(input, ":") == 1 { layout = "04:05" } else { layout = "15:04:05" } t, err := time.Parse(layout, input) if err != nil { return 0, err } return t.Sub(origin), nil } func main() { input := "00:04" duration, err := parseDuration(input) if err != nil { fmt.Println(err) return } fmt.Println(duration.String()) // this prints 4s }
https://www.php.cn/link/bdf0f5f84843f08f00912ae5292162f6
Atas ialah kandungan terperinci Tukarkan 00:33 kepada tempoh dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!