zoukankan      html  css  js  c++  java
  • time datetime

    timedatetime是python处理时间的两个库,作用差不多
    据说datetime的功能比time完善,为了保持一致,尽量都用datetime
    所以time在我看来唯一的用处就是获取时间戳了

    注意datetime里面还有个模块叫datetime,很恶心人,导入的时候小心点

    import datetime
    

    当前时间(精确到秒)

    t = datetime.datetime.now()  # 2017-12-12 19:10:19.580580
    

    当前日期(精确到天)

    t = datetime.date.today()  # 2017-12-12
    

    当前时间戳
    datetime好像不能直接得到时间戳,所以先拿到当前时间,再转成时间戳

    t = datetime.datetime.now()
    stamp = t.timestamp()  # 1513077019.58058
    

    或者通过time直接获取时间戳

    import time
    
    t = time.time()  # 1513077019.580655
    

    应用

    因为工作上的需要,要拿到一个日期(天)的第二天早上六点的时间,我是这么做的

    先拿到零点的时间

    t = datetime.date.today()  # 2017-12-12
    t = datetime.datetime.strftime(t, "%Y-%M-%d %H:%M:%S")  # 2017-12-12 00:00:00
    

    上面拿到的是字符串,需要转成datetime类型才能进行时间上的加减和比较

    t = datetime.datetime.strptime(t, "%Y-%m-%d %H:%M:%S")  # 2017-12-12 00:00:00
    

    加六个小时,也可以加daysminutesweeks等等

    t = t + datetime.timedelta(hours=6)  # 2017-12-12 06:00:00
    

    这样就拿到我想要的东西了,干什么用呢
    第一个日期是用户已经登录过的日期,算出这个日期第二天早上六点的时间
    只要用户在那个时间之前登录,都算已经登录过了,不做处理
    在那个时间之后的第一次登录,就算新的一天的登录,做处理,并重置登录日期为今天

    注意datetime类型的时间,是可以直接做比较的

    t1 = 2017-12-12 19:00:00
    t2 = 2017-12-12 20:00:00
    t1 < t2  # True
    

    在重置登录日期的时候,又遇到一个问题
    如果在零点到六点之间重置,因为过了零点,日期算第二天了
    但过了六点之后应该还要重置一次,判断条件已经达不到了

    所以再做一个判断,是在零点和六点之间重置,日期就往回退一天

    t = datetime.datetime.now()
    h = t.hour
    if h > 6:
        t = datetime.date.today()
    else:
        t = datetime.date.today() - datetime.timedelta(days=1)
    

    参考

    网上的资料一片混乱,这篇是我看过写得最清楚的
    https://zhuanlan.zhihu.com/p/23679915

    这篇讲了timedatetime的区别与联系
    http://gracece.com/2014/10/the-distinction-between-date-and-datetime-in-python/

    再收藏一篇
    http://www.wklken.me/posts/2015/03/03/python-base-datetime.html#1-huo-qu-dang-qian-datetime

  • 相关阅读:
    Mysql 基础
    Python Cdn平台文件md5验证
    Linux内存cache/buffer剖析
    wget
    UTV
    智能DNS解析之edns-client-subnet篇
    Python Django
    OpenSSL SNI
    Python 基础(一)
    Python ORM
  • 原文地址:https://www.cnblogs.com/xb21/p/8385992.html
Copyright © 2011-2022 走看看