美文网首页
如何将时间戳转成普通时间

如何将时间戳转成普通时间

作者: xuzhougeng | 来源:发表于2018-10-28 19:18 被阅读63次

最近运行了一个程序,它的输出日志里有运行时间记录,然而这些都不好懂,

Start_time: 1540533419
End_time:   1540719749
Elapsed:    186330

elapsed还能懂,表示花了多少时间,但是1540533419是什么时间格式,就得要求助以下搜索引擎了。我的搜索关键词是“计算机时间”,第一个结果中就介绍了1>计算机世界中的时间概念,里面介绍了如下几种时间

  • UTC,协调世界时(Universal Time Coordinated)
  • GMT,格林尼治平均时间(Greenwich Mean Time)
  • DST, 夏日节约时间(Daylight Saving Time)
  • 计算机时间系统, 计算机实际是保存的是自UTC时间 1970年1月1日经过的秒数

我看不懂的输出结果就是计算机系统时间,在Linux上可以用date命令进行转换

date --date='@1540533419'
Fri Oct 26 13:56:59 CST 2018
date --date='@1540719749'
Sun Oct 28 17:42:29 CST 2018

可以发现这是我在10月26日下午2点左右开始的任务,完成时间是10月28日下午快6点,差不多跑了51个小时。

date的一些用法

date默认情况下输出人类可读的时间格式,

可以查看系统设置时区的时间

date 
Sun Oct 28 19:09:10 CST 2018

同时date还接受环境变量TZ, 也就是TimeZone(时区),查看给定时区的时间

date --date='TZ="China/Shanghai"' # TZ表示时区

date假如参数-u就看查看协调时间时

date -u 
Sun Oct 28 11:11:58 UTC 2018 # 协调世界时

可以定义格式改变输出,

date +%s # 计算机时间系统
date +%m/%d/%y 等价于 date +%D
date +%Y-%m-%d 等价于 date +%F

例如我的一种用法时间将他放在运行的日志文件名中,比如说

echo $(date) > $(date +%Y-%M-%d-%H-%M).log

还有一个有趣的参数就是-d/--date, 他运行你用字符串描述时间,比如说你可以问你1周前是几号,500天前是几号

date -d "1 week ago" +"%Y-%m-%d %H:%M:%S" 
date -d "500 days ago" +"%Y-%m-%d %H:%M:%S"

/proc/uptime记录着上一次开机到目前过了多少秒,可以和-d参数组合来查看上一次开机的具体日期。

date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"

相关文章

网友评论

      本文标题:如何将时间戳转成普通时间

      本文链接:https://www.haomeiwen.com/subject/zprmtqtx.html