2015-05-19 47 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分鐘,因爲時鐘在夏時制節省一小時,而我正在點數。