Go 从转换unix时间戳获取不希望的未来日期

Go 从转换unix时间戳获取不希望的未来日期,go,Go,我有一个unix时间戳: 1607875199999 我正在尝试将其转换为日期格式: import ( "fmt" "time" ) func main() { fmt.Println("Hello, playground") t := time.Unix(1607875199999,0) fmt.Println(t.Format("02/01/2006, 15:04:05"

我有一个unix时间戳:
1607875199999

我正在尝试将其转换为日期格式:

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println("Hello, playground")

    t := time.Unix(1607875199999,0)
    fmt.Println(t.Format("02/01/2006, 15:04:05"))
}
结果:
15/07/52921,15:59:59

当我在上检查相同的时间戳时: 它给了我:2020年12月13日星期日15:59:59

不知道我错过了什么

func Unix(sec int64, nsec int64) Time
Unix返回自UTC 1970年1月1日以来与给定Unix时间对应的本地时间(秒秒和纳秒)

您所传递的是自纪元开始以来的毫秒数,而不是秒数。将时间戳拆分为秒和小数部分:

var (
    millis  int64 = 1607875199999
    seconds       = millis / 1000
    nanos         = millis % 1000 * 1e6
)

t := time.Unix(seconds, nanos)
fmt.Println(t.Format("02/01/2006, 15:04:05.000")) // 13/12/2020, 15:59:59.999

在操场上试试:

这是毫秒时间戳,
时间。Unix
需要第二个时间戳。