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

如何将Unix十六进制时间戳转换为Ruby DateTime格式

解决方案

无需引入额外第三方gem,使用Ruby原生语法即可完成转换,核心逻辑是先将十六进制格式的字符串转换为十进制的Unix秒级时间戳,再传入Time.at生成时间对象即可。

基础实现(纯Ruby环境)

# 输入的十六进制时间戳字符串
hex_timestamp = '6132103D'
# 十六进制转十进制Unix时间戳
unix_timestamp = hex_timestamp.to_i(16)
# 生成本地时间对象
result_time = Time.at(unix_timestamp)
# 格式化为指定字符串格式
formatted_result = result_time.strftime("%A, %B %-d, %Y %-l:%M:%S %p")
# 输出结果为:Friday, September 3, 2021 12:08:29 PM,和预期一致

如果需要生成UTC时间,只需调用.utc方法即可:

utc_time = Time.at(unix_timestamp).utc

Rails环境适配

如果你在Rails项目中使用,可以直接调用时区适配方法,和你项目配置的时区自动对齐:

rails_time = Time.zone.at(hex_timestamp.to_i(16))

补充说明

  • 如果后续拿到的十六进制时间戳带0x前缀,to_i(16)方法也可以自动识别处理,不需要额外做字符串裁剪。
  • 如果返回的是毫秒级的十六进制时间戳,将转换得到的十进制数值除以1000后再传入Time.at即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:42:04