如何将时间戳从十六进制格式转换为 EPOCH 时间戳?
Posted
技术标签:
【中文标题】如何将时间戳从十六进制格式转换为 EPOCH 时间戳?【英文标题】:How to convert timestamp from Hexadecimal format to EPOCH timestamp? 【发布时间】:2016-02-21 21:40:03 【问题描述】:我正在寻找一个将十六进制时间格式转换为 Linux 时间戳的 Linux 命令。我试过这个命令:
date "+%Y-%m-%d %H:%M:%S ( %s )" --date="@$(printf "%d\n" 0xd6979880)"
output >> 2084-02-01 11:00:00 ( 3600259200 )
但是好像错了,0xd6979880的epoch输出应该是1391270400。 如果我错了,请纠正我。
【问题讨论】:
【参考方案1】:根据您的描述(期望 1391270400
而不是 3600259200
),您的十六进制日期似乎是自 1900-01-01 以来的秒数,而不是 POSIX 时间戳(自 1970-01-01 以来的秒数)。幸运的是,修正这个偏移很容易,只需减去 70 年:
$ date '+%F %T ( %s )' --date="$(date -d @$(printf "%d" 0xd6979880)) - 70 years"
2014-02-01 16:00:00 ( 1391270400 )
【讨论】:
以上是关于如何将时间戳从十六进制格式转换为 EPOCH 时间戳?的主要内容,如果未能解决你的问题,请参考以下文章
使用 sql 查询将元数据库中的预配置时间戳从 utc 格式转换为 ist
如何使用颤振将时间戳从 Firebase 转换为 DateTime
将 Epoch 时间戳转换为 sql server(人类可读格式)
Python:如何将日期时间/时间戳从一个时区转换为另一个时区?