Python:TimeDate问题

时间:2014-07-14 14:30:56

标签: python date time strptime

我一直在特定的时间制作一个小倒数计时器,但似乎有一个负面日子的问题。示例:

s1 = '14:00:00'
s2 = str(current_time)
FMT = '%H:%M:%S'
tdelta = datetime.strptime(s1, FMT) - datetime.strptime(s2, FMT)
print tdelta
>>>-1 day, 22:34:23

Current_time我的系统时间

我怎样才能删除-1天?字符串(s1s2)都没有天数,所以它将这一天计算在tdelta变量计算中

先谢谢!

1 个答案:

答案 0 :(得分:1)

如果您知道目标时间应该是(如2014,8,1),请使用它:

import datetime
target_time = datetime.datetime(2014, 8, 1, 14, 0, 0)
now = datetime.datetime.now()
time_to_go = target_time - now
print(time_to_go)

如果目标时间是今天,你可以改变小时,分钟和秒,并从今天开始休息:

import datetime
target_time = datetime.datetime.now().replace(hour=14, minute=0, second=0, microsecond = 0)
now = datetime.datetime.now()
time_to_go = target_time - now
print(time_to_go)

如果target_time在当前时间之前,timedelta对象通过使用负天数和正秒数来跟踪负时间,从而增加负差异,从而增加到target_time的时间距离。

如果您始终想要跟踪给定小时的时间,无论白天,请使用:

import datetime
target_time = datetime.datetime.now().replace(hour=14, minute=0, second=0, microsecond = 0)
now = datetime.datetime.now()
if target_time < now:
    target_time += datetime.timedelta(1)
time_to_go = target_time - now
print(time_to_go)