Linux Shell 脚本:如何将时间戳转换为时间

哎呀,让我告诉你这个。
两年前我在北京的时候,公司有一个系统日志,时间戳都是一堆难以读懂的数字。
我正在考虑使用 shell 脚本将其转换为漂亮的图像。

这是我编写脚本的方式,非常简单:
bash !/bin/bash 时间戳=$1 if [ -z "$timestamp" ];那么 echo "输入时间戳" 1 号出口 菲 human_read_time=$(data -d "@$timestamp" '+%Y-%m-%d %H:%M:%S') echo "转换后的时间为:$ human_read_time"
保存并命名为convert_timestamp.sh。
然后添加执行权限,chmod +x Convert_timestamp.sh。
那天我尝试了一下,并传递了一个时间戳,例如 ./convert_timestamp.sh 1 6 3 1 3 8 9 8 8 7 ,它立即给了你 2 02 1 -09 -1 2 00:04 :4 7
我曾经遇到过一个毫秒级的时间戳,一个1 3 位的数字,比如1 6 3 1 3 8 9 8 8 7 1 2 3 当时我直接把这个写到了脚本中:
bash millis_timestamp=1 6 3 1 3 8 9 8 8 7 1 2 3 秒_时间戳=${millis_timestamp:0:1 0} 数据-d“@$秒_时间戳”'+%Y-%m-%d%H:%M:%S'
通过去掉前 1 0 位数字中的毫秒并将其转换为秒,您仍然可以匹配它们。
这个技巧非常有效。

还有一次,我在上海做事时,时间戳被转换为UTC。
我设置环境变量:
bash 导出 TZ='亚洲/上海' 数据 -d "@1 6 3 1 3 8 9 8 8 7 " '+%Y-%m-%d %H:%M:%S'
立即变成上海时间,2 02 1 -09 -1 2 08 :04 :4 7 这样看感觉舒服多了。

总的来说,date -d "@timestamp" +FORMAT 命令真的很酷。
只需创建一个脚本,传递一个时间戳,它就会在几秒钟内转换为人类可以理解的时间。
后来我在几个项目中使用过它,比如日志分析、数据同步等,使用起来更加方便。

时间戳和日期转换工具

上周 我使用了Smarttools的时间戳转换工具。

它真的很容易使用。

快速转换 Unix 时间戳。

界面非常简单。

免费获取。

这对开发非常有帮助。

算了。