计算X小时后的时间?

时间:2014-10-31 01:23:42

标签: python time

例如,如果开始时间是上午8:00,我如何计算20小时后的时间?

2 个答案:

答案 0 :(得分:1)

需要使用像timedelta

这样的东西
from datetime import datetime, timedelta

twenty_hours= datetime.now() + timedelta(hours=20)

当然你会将datetime.now()更改为你的上午8点或你希望的时间

 >>> format(twenty_hours, '%H:%M:%S')
 '23:24:31'

答案 1 :(得分:0)

您的问题至少有两种可能的解释:

  1. 查找从现在起20小时内的当地时间:

    #!/usr/bin/env python3
    from datetime import datetime, timedelta, timezone
    
    now = datetime.now(timezone.utc) # current time in UTC
    in20hours = (now + timedelta(hours=20)).astimezone() # local time in 20 hours
    print("Local time in 20 hours: {in20hours:%I:%M %p}".format(**vars()))  # AM/PM
    
  2. 在忽略本地UTC偏移的任何变化时找到时间(由于DST转换或任何其他原因):

    #!/usr/bin/env python
    from datetime import datetime, timedelta, timezone
    
    now = datetime.now() # local time
    by20hours = now + timedelta(hours=20) # move clock by 20 hours
    print("Move clock by 20 hours: {by20hours:%I:%M %p}".format(**vars()))  # AM/PM
    

    相关:python time + timedelta equivalent

  3. 如果本地utc偏移量在接下来的20个小时内没有变化,则两种方法都会产生相同的结果。否则第二种方法失败,找到20小时后的时间。

    你可能需要第二种方法,如果你想在同一个当地时间做某事,无论多少小时过去,例如,如果你想在早上6点起床,无论是否已经过了24小时。见How can I subtract a day from a Python date?

    如果您正在使用当地时间,有关时间算法的详细信息,请参阅Find if 24 hrs have passed between datetimes - Python