这样很多情况下我要将int64转换为int.
但是例如Day()函数之类的返回是int.
UnixNano()返回的是int64我能理解,因为超过2^32次方。
仅仅是因为以后unix时间戳也有可能会超过2^16次方吗?
那我现在直接做一个int(int64)的强制转换可能会产生什么问题吗?
这样很多情况下我要将int64转换为int.
但是例如Day()函数之类的返回是int.
UnixNano()返回的是int64我能理解,因为超过2^32次方。
仅仅是因为以后unix时间戳也有可能会超过2^16次方吗?
那我现在直接做一个int(int64)的强制转换可能会产生什么问题吗?
uint32的时间戳精度只有秒,而且32位最大值(4294967296)只能用到2102年就不够用了。golang 用int64可以精确到纳秒。一般在golang中还是直接用time.Time类型的,只有保存时才做转换。
2 回答2.7k 阅读✓ 已解决
4 回答2k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
1 回答1.5k 阅读✓ 已解决
2 回答1.4k 阅读
我想你提到的是这个API https://golang.org/pkg/time/#...
32 bit 整数会有year 2038问题。由于历史原因很多time_t和相关实现使用32 bit整数:
Source: https://www.systutorials.com/...
但Go相对比较新,不需要背着向后兼容的包袱。64 bit整数避开这些问题。