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

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

作者: 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