go - Unix时间戳格式转换

标签 go

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() 之外的其他解决方案,以便生成的时间已经考虑了小时差?任何帮助将不胜感激。

最佳答案

您需要 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

关于go - Unix时间戳格式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24871789/

相关文章:

selenium - 任何等待某些 javascript 代码的 waitForJs 函数返回 true

go - 如何使用新功能扩展日志 API

goimports 不适用于 vim-go 插件

go - 从访问 token 获取 Google 登录个人资料信息 - Golang

dictionary - 从 golang 中的 channel 响应填充 map 值

elasticsearch - 没有在 Field ElasticSearch 6.4.3 上声明类型关键字的处理程序

string - 正确获取中文字符串的宽度

json - 无法在golang程序中解析json值

go - 不能在 Go 中使用 "go"作为变量名

docker - 在构建 docker 容器时使用本地依赖项