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

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

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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值