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

Excel及Power BI中如何将0x格式时间戳转换为标准日期

Excel转换十六进制FILETIME时间戳的方法

你拿到的0x00000000079A367B是Windows体系下的FILETIME格式十六进制时间戳,并非通用Unix时间戳:它的计数起点是1601年1月1日 00:00:00 UTC,单单位代表100纳秒时长,直接套用普通时间戳转日期的公式必然得到错误结果。

全版本Excel兼容方案

所有Excel版本都可以用这套公式,不需要加载插件:

  • 第一步:预处理时间戳字符串,把开头的0x前缀删掉,仅保留后续16位十六进制字符,示例值处理后为00000000079A367B,将该字符串存入A1单元格。
  • 第二步:使用拆分转换公式规避HEX2DEC函数的10位十六进制数转换上限,直接计算日期值:
    若需要输出UTC标准时间,输入以下公式:
    =(HEX2DEC(LEFT(A1,8))*2^32 + HEX2DEC(RIGHT(A1,8)))/864000000000 + DATE(1601,1,1)
    
    若需要输出北京时间(UTC+8),在公式末尾追加+ 8/24即可;如果服务器时区为其他时区,按实际时差调整追加的小时数值即可。
  • 第三步:选中公式单元格,将数字格式修改为「短日期」「长日期」或自定义的日期时间格式,即可得到可读的标准日期。
    用你提供的示例值计算,最终得到的UTC时间为1970/1/1 00:00:12左右,北京时间为1970/1/1 08:00:12,符合时间戳取值逻辑。

高版本Excel(365/2021及以上)简便方案

高版本Excel支持64位大数运算,可以用LET函数简化公式,不需要手动拆分十六进制字符串:

  • 直接将带0x前缀的原始时间戳存入A1单元格,输入以下公式得到UTC时间:
    =LET(ts,HEX2DEC(SUBSTITUTE(A1,"0x","")),ts/864000000000 + DATE(1601,1,1))
    
  • 同样根据需要追加时区偏移值,最后设置单元格为日期格式即可。

注意事项

  • 不要直接套用Unix时间戳转换逻辑(从1970/1/1起算、秒/毫秒级计数),否则计算结果会出现数百年的偏差
  • 如果公式计算后显示为5-6位的纯数字,是单元格格式未设置为日期导致的,手动调整数字格式即可正常显示
  • 如果从Power BI导出数据时可以提前做字段类型转换,直接在Power BI里用#datetime(1601,1,1,0,0,0) + #duration(0,0,0,时间戳值/10000000)的逻辑转换,效率会比在Excel里处理更高

内容的提问来源于stack exchange,提问作者user19421851

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:18:32