Delta diff不是期望的结果

时间:2016-09-18 21:21:05

标签: python-3.x datetime

我希望在x天之前的几天内进行倒计时。我试过这个:

from datetime import datetime, timedelta

date = input('Enter your date: ')
delta = datetime.strptime(date, '%Y-%m-%d') - datetime.now()
print("We'll be {} in {} days".format(date, delta.days))

使用说2016-09-27,但它给我的结果是8 days,当它真的感觉应该是9 days(EDT)时。

还有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

datetime.timedelta上引用文档:

  

仅在内部存储天,秒和微秒。参数   转换为这些单位:

     

毫秒转换为1000微秒。一分钟转换   到60秒。一小时转换为3600秒。一周是   转换为7天。

因此,基本上,你的delta是d天,s秒和m微秒,但你决定只打印d部分。

您需要提出一种算法,将dsm转换为"用户友好型" delta版本。

对于非常简单,可能足够的解决方案:

from datetime import datetime, timedelta, date
datetime_today = datetime.fromordinal(date.today().toordinal())
d = input('Enter your date: ')
delta = datetime.strptime(d, '%Y-%m-%d') - datetime_today
print("We'll be {} in {} days".format(d, delta.days))
# We'll be 2016-09-27 in 9 days