【问题标题】:how to shift a datetime object by 12 hours in python如何在python中将日期时间对象移动12小时
【发布时间】:2010-09-07 15:42:37
【问题描述】:

由于某种原因,日期时间对象让我头疼。我写信是想弄清楚如何将日期时间对象移动 12 小时。我还需要知道如何判断两个日期时间对象是否相差 1 分钟或更多。

【问题讨论】:

    标签: python datetime


    【解决方案1】:

    datetime 库有一个 timedelta 对象专门用于此类事情:

    import datetime
    
    mydatetime = datetime.now() # or whatever value you want
    twelvelater = mydatetime + datetime.timedelta(hours=12)
    twelveearlier = mydatetime - datetime.timedelta(hours=12)
    
    difference = abs(some_datetime_A - some_datetime_B)
    # difference is now a timedelta object
    
    # there are a couple of ways to do this comparision:
    if difference > timedelta(minutes=1):
        print "Timestamps were more than a minute apart"
    
    # or: 
    if difference.total_seconds() > 60:
        print "Timestamps were more than a minute apart"
    

    【讨论】:

    • 如果本地时区的 utc 偏移量发生变化,例如在 DST 转换期间,它可能会失败。使用 UTC 时区执行日期运算更方便,并将其转换为本地时间仅显示给用户
    【解决方案2】:

    你会使用 datetime.timedelta 来做这样的事情。

    from datetime import timedelta
    

    datetime 算术类似于普通算术:您可以将timedelta 对象添加到datetime 对象以改变其时间:

    dt = # some datetime object
    dt_plus_12 = dt + timedelta(hours=12)
    

    你也可以减去两个datetime对象得到一个timedelta代表它们之间的差异:

    dt2 = # some other datetime object
    ONE_MINUTE = timedelta(minutes=1)
    if abs(dt2 - dt) > ONE_MINUTE:
        # do something
    

    【讨论】:

      猜你喜欢
      • 2010-10-01
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 2018-10-05
      • 2015-01-09
      • 1970-01-01
      相关资源
      最近更新 更多