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

tma*_*ino 2 excel timezone datetime r

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")))
Run Code Online (Sandbox Code Playgroud)

以上返回34,660,而Excel和http://www.timeanddate.com/date/duration.html均返回34,720.由于2015年3月8日的夏令时,R将t1识别为CST,t2识别为CDT.我想确认R是正确的,而其他两个来源则没有.

the*_*ail 7

取决于您是否要考虑当地夏令时,或者这些时间是两个与当地班次无关的时间点.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
Run Code Online (Sandbox Code Playgroud)

如果我坐在芝加哥用秒表计算酒吧当地时钟所说的"2015-02-17 12:20:00"然后点击之间的分钟差异"2015-03-13 15:00:00",我会计算减少60分钟因为时钟在夏令时向前一小时进行夏令时.