如何使用Go的时间包格式化时间,如RFC3339,但没有时区(即本地时间)

时间:2018-03-22 21:39:32

标签: go

现在我有一种丑陋的方式从Go的time包中获取ISO 8601本地时间字符串(我需要几毫秒的有效数字)。

t := time.Now()
now := fmt.Sprintf("%d-%02d-%02d %02d:%02d:%f",
    t.Year(), t.Month(), t.Day(),
    t.Hour(), t.Minute(),
    float64(t.Second()) + float64(int(t.Nanosecond()/1E6))/1000)
fmt.Println(now)

我觉得这不是理想的做法,但我找不到一个简单的,内置的方式来做这个的例子。这种方式存在吗?

1 个答案:

答案 0 :(得分:0)

使用t.Format("2006-01-02 15:04:05.000")

我假设如果秒小于10则缺少零是一个错误;如果您确实需要,请将05更改为5。如果您想要小数点后的更多或更少的数字,请在格式的末尾添加或删除零。

更多时间格式in the docs for the time package