shell、python时间函数小结
阅读原文时间:2023年09月07日阅读:1

有时需要写一些定时任务脚本,简单总结一下,备忘。

1. 获取当前时间

  • python

    在windows下精确到0.001秒,linux下时间精度为0.000001秒

    import datetime
    datetime.datetime.now()
    datetime.datetime(2018, 5, 23, 17, 16, 33, 61000)
    print datetime.datetime.now()
    2018-05-23 17:16:57.688000

  • shell

    date
    Wed May 23 15:53:45 CST 2018

2. 时间格式化

  • python

    import datetime
    datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    '2018-05-23 15:50:07'

  • shell

    date -I
    2018-05-23
    root@hammerhead:/ # date "+%Y-%m-%d %H:%M:%S"
    2018-05-23 15:51:29

3. 时间加减法

  • python

    t0 = datetime.datetime.now()
    t1 = t0 + datetime.timedelta(seconds=600)
    print t0
    2018-05-23 16:12:33.184000
    print t1
    2018-05-23 16:22:33.184000
    t2 = t0 - datetime.timedelta(days=2)
    print t2
    2018-05-21 16:12:33.184000

  • shell

    获取上一个周一的日期,是距离最近的那个周一,不一定是上周一。

    比如今天周三,那么上一个周一就是前天。

    另外要注意,安卓系统上的busybox指令为阉割版,高级的参数不一定支持。

    date -d "last-monday" -I
    2018-05-21
    #同理,可以输入:
    date -d "next-monday" -I
    2018-05-28
    #昨天
    date -d "yesterday" -I
    2018-05-22