1405936049
的unix_timestamp对应于:2014-07-21 09:47:29
。我的目标是从时间戳中推导出后一种形式。
阅读格式文档后,我想出了以下内容:
fmt.Println(time.Unix(1405936049, 0).Format("2006-01-02 15:04:05"))
产生:2014-07-21 02:47:29
,这是有道理的,因为time.Unix(1405936049, 0)
给出:2014-07-21 02:47:29 -0700 PDT
(很清楚,我想:2014-07-21 09:47:29,小时是不正确的)。
我确定如果我知道正确的术语,我能够在文档中找到解决方案,但此时,我不确定如何告诉解析器解释-0700
或者替代解决方案可能是使用除time.Unix()
之外的其他内容,以便产生的时间已经考虑了小时差异?任何帮助将不胜感激。
答案 0 :(得分:3)
您想要UTC时间,而不是您当地的PDT时间。例如,
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println(time.Unix(1405936049, 0).UTC().Format("2006-01-02 15:04:05"))
}
输出:
2014-07-21 09:47:29
答案 1 :(得分:0)
您必须使用Location
:
loc, _ := time.LoadLocation("Europe/Paris")
fmt.Println(time.Unix(1405936049, 0).In(loc).Format("2006-01-02 15:04:05"))
我认为您想要的位置是“UTC”,但我让您检查(否则,这里是a list of all available locations)。在游乐场中格式已经09:47:29
的原因是playground does not include locations并默认使用UTC。