将 00:33 转换为 golang 中的持续时间

将 00:33 转换为 golang 中的持续时间

问题内容

我有一个字符串“12:34”,格式为“mm:ss”,我想将其转换为 time.duration。已经在这上面浪费了太多时间了。我在这段代码中做错了什么:

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 }登录后复制