R中difftime的结果与excel和timeanddate.com不同

t1 <- strptime("2015-02-17 12:20:00", format = "%Y-%m-%d %H:%M:%S", tz = "America/Chicago") t2 <- strptime("2015-03-13 15:00:00", format = "%Y-%m-%d %H:%M:%S", tz = "America/Chicago") as.numeric(abs(difftime(t1, t2, units = "mins", tz = "America/Chicago"))) 

以上回报34660,而Excel和http://www.timeanddate.com/date/duration.html都返回34,720。 由于15/3/15的日光节约,R将t1认定为CST,将t2认定为CDT。 我想确认R是正确的,而这两个来源不是。

取决于你是否要考虑当地的夏令时,或者这些时间是否与当地的class次无关。 Excel和该网站只是采取了这两个时间之间的确切区别,舍弃夏令时 – 例如,R可以通过将时区更改为UTC (不遵守夏令时)获得相同的结果:

 difftime(as.POSIXct("2015-03-13 15:00:00",tz="UTC"), as.POSIXct("2015-02-17 12:20:00",tz="UTC"), units="mins") # Time difference of 34720 mins 

如果我坐在芝加哥的秒表,并计算在酒吧当地时钟说"2015-02-17 12:20:00" ,然后打"2015-03-13 15:00:00"分钟之间的差异"2015-03-13 15:00:00"我计数的时间less了60分钟,因为夏令时一小时才能结束。