最近运行了一个程序,它的输出日志里有运行时间记录,然而这些都不好懂,
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"
网友评论