go - 通过转换 unix 时间戳获取不想要的未来日期
问题描述
我有一个 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"))
}
结果
::https 15/07/52921, 15:59:59
: //play.golang.org/p/eHx0IrQjL0o
当我在以下位置检查相同的时间戳时:https ://www.epochconverter.com/ 它给了我:2020 年 12 月 13 日星期日 15:59:59
不确定我错过了什么?
解决方案
func Unix(sec int64, nsec int64) Time
Unix 返回与给定 Unix 时间相对应的本地时间,自 1970 年 1 月 1 日 UTC 以来的秒秒和纳秒纳秒。
https://golang.org/pkg/time/#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
在操场上试一试:https: //play.golang.org/p/hwz03bkd2Bq
推荐阅读
- javascript - 向页面添加延迟加载
- javascript - 对雪花中的数组进行组合、重复数据删除和排序
- python - 没有为 Google 搜索打印标题和链接
- android - 在 Box 中使用 Modifier.fillMaxHeight() 不显示元素
- python - 如何从 csv 文件制作稀疏的 pandas DataFrame
- python - 使用 for 循环导入和格式化数据输入
- python - 由换行符分隔的普通 JSON 到 Bigquery JSON 要求
- php - isset($_GET(var)) 为真,即使 var 为空或未定义
- swift - Swift:Locale.current 和 Locale 之间的区别(标识符:Locale.current.identifier)
- java - 如何用 Java 编写 SQL 查询以从雪花中获取数据