You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中对超大数执行位右移?Discord雪花转时间戳求助

Discord雪花转Unix时间戳(Google Sheets 超2^48数值兼容方案)

问题原因

Google Sheets的BITRSHIFT函数仅支持**小于2^48(即281474976710656)**的输入值,但Discord雪花ID是17-18位的64位数字,远超这个阈值,因此直接调用BITRSHIFT会触发参数超限错误。

可行解决办法

方法1:用数学运算替代位右移

位右移22位等价于将数值除以2^22(即4194304)后取整数部分,因此可以用以下公式替代原方案:

=INT(A2 / 4194304) + 1420070400000
  • 逻辑说明:Discord雪花的前42位是时间戳(相对于Discord纪元1420070400000),将整个ID除以2^22(舍去余数)即可提取这部分时间戳,再加上纪元偏移量得到标准Unix毫秒时间戳。

方法2:字符串格式兼容(避免科学计数法干扰)

如果你的雪花ID因为长度过长被自动转为科学计数法(比如显示为2.87134e+17),可以先处理单元格格式再计算:

  1. 选中存储雪花ID的单元格,右键选择「设置单元格格式」→ 选择「纯文本」。
  2. 使用公式提取有效数值并计算:
=INT(VALUE(A2) / 4194304) + 1420070400000
  • 补充:如果科学计数法已经导致精度丢失,需要重新输入完整的雪花ID(纯文本格式下)才能保证计算准确。

验证示例

以雪花ID 287134013666099000 为例:

  • 用方法1计算:INT(287134013666099000 / 4194304) + 1420070400000 = 1481256013000
  • 转换为北京时间对应2016-12-09 10:40:13,与Discord消息的实际时间一致。

内容的提问来源于stack exchange,提问作者absolutely not the the

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 17:14:57