python的时差在某些日期不起作用

时间:2016-07-31 19:43:11

标签: python datetime

我有这个函数来计算两个时间戳之间的差异,以秒为单位。

def diffdates(d1, d2):
  diff =  (time.mktime(time.strptime(d2,"%Y-%m-%dT%H:%M:%S")) -
           time.mktime(time.strptime(d1, "%Y-%m-%dT%H:%M:%S")))
  pprint(d2)
  pprint(d1)
  pprint(diff)
  return diff

diffdates(diffdates('2016-10-11T11:10:00','2016-10-11T16:00:00')

当我用给定的参数调用它时,我希望结果是

4*3600-10*60 = 13800

但我得到

17400 = 5*3600 - 10*60

我正在检查,如果我在文档中的格式化字符串有问题,但我找不到任何问题。此外,该日期的夏季/冬季时间也没有变化。

1 个答案:

答案 0 :(得分:1)

你的数学错了。 16:00至11:10之间的差异是4小时50分钟。您对4*3600-10*60的计算建议为3小时50分钟。你要一小时了。

16:00每天60*16分钟:960

11:1060*11+10

670分钟

960 - 670290分钟

290 minutes * 6017400秒。