R 为什么 POSIXlt 之间的差异有小数部分?
R why does difference between POSIXlt has a decimal part?
为什么 POSIXlt 之间的差异有小数部分而 Date 之间的差异没有?
示例:
as.POSIXlt("2015-12-10",format = "%Y-%m-%d")-as.POSIXlt("2015-10-07",format = "%Y-%m-%d")
returns 64.04167
as.Date("2015-12-10",format = "%Y-%m-%d")-as.Date("2015-10-07",format = "%Y-%m-%d")
returns 64
(正确值)
为什么会有不同的行为?
这些小数正好是一小时,发生在夏令时转换期间。
0.04167 * 24
#[1] 1.00008
#some rounding error
指定一个没有夏令时的时区,你会得到这个:
as.POSIXlt("2015-12-10",format = "%Y-%m-%d", tz = "GMT")-
as.POSIXlt("2015-10-07",format = "%Y-%m-%d", tz = "GMT")
#Time difference of 64 days
为什么 POSIXlt 之间的差异有小数部分而 Date 之间的差异没有?
示例:
as.POSIXlt("2015-12-10",format = "%Y-%m-%d")-as.POSIXlt("2015-10-07",format = "%Y-%m-%d")
returns 64.04167
as.Date("2015-12-10",format = "%Y-%m-%d")-as.Date("2015-10-07",format = "%Y-%m-%d")
returns 64
(正确值)
为什么会有不同的行为?
这些小数正好是一小时,发生在夏令时转换期间。
0.04167 * 24
#[1] 1.00008
#some rounding error
指定一个没有夏令时的时区,你会得到这个:
as.POSIXlt("2015-12-10",format = "%Y-%m-%d", tz = "GMT")-
as.POSIXlt("2015-10-07",format = "%Y-%m-%d", tz = "GMT")
#Time difference of 64 days