英文:
Convert formatted time to UTC milliseconds
问题
如何将格式为 "2009-01-01T01:02:01.111+02:00" 的时间转换为以毫秒为单位的 UTC 时间?
是否已经有用于此转换的包?我查看了 https://golang.org/src/time/format.go,但没有找到相同的格式进行转换。
英文:
How to convert time in format
2009-01-01T01:02:01.111+02:00
to UTC in milliseconds?
Is there already package for this conversion? I looked at the https://golang.org/src/time/format.go but couldn't find same format to convert.
答案1
得分: 8
使用time.Parse
。
示例:http://play.golang.org/p/ouiDtIVjQI
package main
import (
"fmt"
"time"
)
func main() {
t, e := time.Parse(`2006-01-02T15:04:05.000-07:00`, `2009-01-01T01:02:01.111+02:00`)
if e != nil {
panic(e)
}
fmt.Println(t.UTC().UnixNano() / 1000000)
}
使用格式字符串2006-01-02T15:04:05.000-07:00
作为参考日期。
英文:
Use time.Parse
.
Demo: http://play.golang.org/p/ouiDtIVjQI
package main
import (
"fmt"
"time"
)
func main() {
t, e := time.Parse(`2006-01-02T15:04:05.000-07:00`, `2009-01-01T01:02:01.111+02:00`)
if e != nil {
panic(e)
}
fmt.Println(t.UTC().UnixNano() / 1000000)
}
Use the format string 2006-01-02T15:04:05.000-07:00
for the reference date.
答案2
得分: 1
格式非常标准,符合ISO8601标准,因此您可以使用time.RFC3339
布局,例如:
t, e := time.Parse(time.RFC3339, "2009-01-01T01:02:01.111+02:00")
...然后按照thwd的答案中所述,继续使用.UnixNano()
。在src/time/format.go中可以找到更多预定义的布局。
英文:
the format is pretty standard ISO8601, so you can use the time.RFC3339
layout, e.g.
t, e := time.Parse(time.RFC3339, "2009-01-01T01:02:01.111+02:00")
...and proceed with .UnixNano()
as in thwd's answer. More predefined layouts can be found in src/time/format.go.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论