R 中 difftime 的结果不同于 excel 和 timeanddate.com
Results with difftime in R different from excel and 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")))
上面的 return 是 34,660,而 Excel 和 http://www.timeanddate.com/date/duration.html 都是 return 34,720。由于 2015 年 3 月 8 日的夏令时,R 将 t1 识别为 CST,将 t2 识别为 CDT。我想确认 R 是正确的,而其他两个来源不是。
取决于您是否要考虑当地夏令时,或者这些时间是否是与当地轮班无关的两个时间点。 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 分钟因为在我数数的时候时钟快了一个小时以进行夏令时。
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")))
上面的 return 是 34,660,而 Excel 和 http://www.timeanddate.com/date/duration.html 都是 return 34,720。由于 2015 年 3 月 8 日的夏令时,R 将 t1 识别为 CST,将 t2 识别为 CDT。我想确认 R 是正确的,而其他两个来源不是。
取决于您是否要考虑当地夏令时,或者这些时间是否是与当地轮班无关的两个时间点。 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 分钟因为在我数数的时候时钟快了一个小时以进行夏令时。