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

标签 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)

我觉得这不是执行此操作的理想方法,但我找不到一个简单的内置方法的示例。有这种方式吗?

最佳答案

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

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

有关时间格式的更多信息 in the docs for the time package .

关于go - 如何使用 Go 的时间包像 RFC3339 一样格式化时间,但没有时区(即本地时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49438927/

相关文章:

go - 访问 Go 映射中的嵌套值

在 Golang 中使用输入重定向来排除差异

go - 如何在 Go 中优雅地迭代日期范围

post - 在 fcgi 上的 Golang 中获取 GET 请求

go - 在检查if-else条件时 undefined variable 名

戈朗 : Running something every few seconds with Ticker

go - Go 中的类型别名与类型定义

go - 尝试从 gorilla SecureCookie读取时返回空 map

xml - 在运行时更改结构标记 (xml)

go - channel 关闭时收到的 bool 标志与Golang中的预期不符