Ripple RPC方法account_tx返回date属性日期偏差问题求解
解决Ripple
account_tx方法返回date时间戳偏移20年的问题 嘿,这个问题我之前也踩过坑!你看到的date字段并不是标准Unix时间戳,而是Ripple自己的**Ripple Epoch(瑞波纪元)**时间戳,这就是时间差了20年的核心原因。
问题根源
Ripple的时间戳是以2000年1月1日00:00:00 UTC作为起始点计算的秒数,而标准Unix时间戳的起始点是1970年1月1日。两者之间的固定时间差是946684800秒(正好是20年的总秒数)。
解决方法
- 手动计算验证:把返回的Ripple时间戳加上
946684800,就能得到标准Unix时间戳。比如你拿到的580452520:
把这个标准时间戳转成日期,正好是2018年5月25日,和你实际的交易日期完全匹配。580452520 + 946684800 = 1527237320 - 代码示例(Python):
# 从account_tx接口获取的Ripple时间戳 ripple_timestamp = 580452520 # 转换为标准Unix时间戳 unix_timestamp = ripple_timestamp + 946684800 # 转成可读的UTC日期格式 from datetime import datetime readable_date = datetime.utcfromtimestamp(unix_timestamp).strftime('%Y-%m-%d %H:%M:%S') print(readable_date) # 输出:2018-05-25 09:55:20 - 通用适配思路:不管你用JavaScript、Java还是其他语言,逻辑都是一致的——给Ripple时间戳加上
946684800这个固定偏移量,再转换为你需要的日期格式即可。
小提醒
所有Ripple RPC接口返回的时间相关字段(不止account_tx里的date),都是采用这个纪元时间戳,以后碰到类似的时间偏移问题,直接用这个方法就能解决。
内容的提问来源于stack exchange,提问作者mottu
相关产品推荐
相关产品推荐

