2015-05-19 48 views
2
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"))) 

上面的函数返回34,660,而Excel和http://www.timeanddate.com/date/duration.html都返回34,720。由于15/3/15的夏令时,R将t1认定为CST,将t2认定为CDT。我想确认R是正确的,而这两个来源不是。R中的difftime与excel和timeanddate.com不同的结果

回答

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 

如果我坐在芝加哥秒表,并在计数时的本地时钟之间的差别分钟酒吧说"2015-02-17 12:20:00",然后点击"2015-03-13 15:00:00",我计数60分钟,因为时钟在夏时制节省一小时,而我正在点数。