您正在查看: EOS-经验分享 分类下的文章

time_point 无法表示 2106年以后的时间问题

问题

目前想存下相对于当前时间100年以后的时间,当输入的时间超过2106年后,就重新从1970来开始累加

问题跟进

合约中常用的时间类型为

time_point
time_point_sec

由于两个都是uint32_t(unsigned int)类型保存秒数,最大值是4294967295
EOSIO时间戳使用的仍然是Unix时间戳,即从1970/1/1 0:0:0开始计算,所以可以表示到最大的时间为2106
无法满足需求

解决方案

存储当前更新时间与结束时间的差值秒数作为存储数据

参考

https://bihu.com/article/1403575169