我正在寻找将十六进制时间格式转换为 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。 如果我错了,请纠正我。
最佳答案
根据您的描述(期望 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 )
关于linux - 如何将时间戳从十六进制格式转换为 EPOCH 时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33809097/