golang 的 time.Time 的最大有效时间到 2157 年吗?

2020 年 3 月 20 日
 AmrtaShiva
5084 次点击
所在节点    Go 编程语言
16 条回复
bigdogbigpig
2020 年 3 月 20 日
英语不好可以翻译
thet
2020 年 3 月 20 日
https://github.com/golang/proposal/blob/master/design/12914-monotonic.md
https://zhuanlan.zhihu.com/p/93299132
可以参考一下这个,wall time 存储的是壁钟的时间(该时钟可能会更改以进行时钟同步)
loading
2020 年 3 月 20 日
没事,到时再加一位就行了。
64 位只有这么长。

unix 时间戳也加过位。
AmrtaShiva
2020 年 3 月 20 日
@loading 怎么加?
loading
2020 年 3 月 20 日
@AmrtaShiva 这不是你和我关心的。还有一百多年。
loading
2020 年 3 月 20 日
你确有需要就自己写个包,别直接改基础库。
whitehack
2020 年 3 月 20 日
1 百多年以后的事还要管?
spadger
2020 年 3 月 20 日
我自己的版本号只能到 2127 年,我觉得都够用了,感觉自己活不了那么久。
2kCS5c0b0ITXE5k2
2020 年 3 月 20 日
2127 年 是不是还会是 x64? 或许计算机都不存在了... 还担心这个
whywhywhy
2020 年 3 月 20 日
@emeab 哈哈哈,以前一个计算机就是一栋楼,现在一个计算机直接揣兜里了
AmrtaShiva
2020 年 3 月 20 日
@loading 我在写万年历 到今后三千年的时间 看了一下 go 的 time.Time 比较 不能做到小于等于的情况下比较两个时间 这里就得自己搞了
@whitehack
@spadger
看了一下时间比较函数 go 的时间比较就只有大于或者小于 没有等于的情况 时间上刚才看了一下 可以比较出来
```
package main

import (
"fmt"
"time"
)

func difft() (b bool) { //如果日期相等就返回 false

t1 := time.Date(2166, 12, 22, 12, 0, 0, 0, time.UTC)
t2 := time.Date(2166, 12, 22, 12, 0, 0, 0, time.UTC)
b = t1.Before(t2)
fmt.Printf("b:%t\n", b)
return
}

func main() {
fmt.Println("vim-go")
difft()
}

```
QUIOA
2020 年 3 月 20 日
想到
loading
2020 年 3 月 20 日
你很难估计后面的事,你知道闰秒吗?还有时间调整。

例如
1927 年 12-31 23:54:07
1927 年 12-31 23:54:08
相减,结果应该是
353
si
2020 年 3 月 20 日
等 intel/amd x128 的计算机出现就支持更大的时间了[doge]
AmrtaShiva
2020 年 3 月 20 日
@loading 知道润秒 这东西早就有人建议取消了 我手里的数据 不打算计算润秒 因为影响可以忽略 我大概看了一下 计算出来的时间和寿星最新版本就是差润秒的时间
reus
2020 年 4 月 6 日
@AmrtaShiva time.Time 有 Equal 方法!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/654445

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX