在Python中查找两个日期之间的中点日期

bla*_*000 14 python datetime date

给定日期:

my_guess = '2014-11-30'
their_guess = '2017-08-30'
Run Code Online (Sandbox Code Playgroud)

如何拆分日期之间的差异,返回正确的日历日期?

Ale*_*ley 26

一种方法是使用datetime.找出两个日期之间的差异,将其减半,并在较早的日期添加:

>>> from datetime import datetime
>>> a = datetime(2014, 11, 30)
>>> b = datetime(2017, 8 ,30)
>>> a + (b - a)/2
2016-04-15 00:00:00
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,已经过去 6 年了,但这在 Python 3.9 中并没有按预期工作 - `a + (b - a)/2` 的结果对我来说只是 a 的值。 (4认同)
  • @AgustinBarrachina:Python不允许您添加“datetime”对象:您需要“datetime + timedelta”(减去“datetime”对象会得到一个“timedelta”对象)。 (3认同)

Pad*_*ham 5

from datetime import datetime
d1 = datetime.strptime(my_guess,"%Y-%m-%d")
d2 = datetime.strptime(their_guess,"%Y-%m-%d")
print d1.date() + (d2-d1) / 2 # first date plus the midpoint of the difference between d1 and d2  
2016-04-15 
Run Code Online (Sandbox Code Playgroud)