“difftime”中可能存在错误-计算R中的日期时间差
我正在使用“difftime”中可能存在错误-计算R中的日期时间差,r,dst,date-arithmetic,posixct,difftime,R,Dst,Date Arithmetic,Posixct,Difftime,我正在使用R中的difftime函数计算两个日期时间的差异,结果得到了错误的答案,代码如下 t1 <- as.POSIXct("7/18/2005 8:30:00", format = "%m/%d/%Y %H:%M:%S") t2 <- as.POSIXct("10/30/2005 8:30:00", format = "%m/%d/%Y %H:%M:%S") difftime(t2,t1,units = "hours") 我知道这是错误的,因为t1和t2都有相同的time值,
R
中的difftime
函数计算两个日期时间的差异,结果得到了错误的答案,代码如下
t1 <- as.POSIXct("7/18/2005 8:30:00", format = "%m/%d/%Y %H:%M:%S")
t2 <- as.POSIXct("10/30/2005 8:30:00", format = "%m/%d/%Y %H:%M:%S")
difftime(t2,t1,units = "hours")
我知道这是错误的,因为t1
和t2
都有相同的time
值,所以它们应该用24小时的精确倍数分开(即,正确答案是2496小时,而不是2497小时-也可以通过excel、google sheets等其他工具确认)
知道吗,为什么
R
给了我错误的结果吗?由于夏令时转换,您获得了一个小时(2005年10月30日星期日02:00:00)
您可以通过将作为.POSIXct(…,tz='UTC')
来修改它,不管它应该是什么时区;UTC将使事情变得明确,并避免DST更改
如果要修改所有as.POSIXct()
调用的默认时区,请参阅,建议:
- [作为R命令]
或Sys.setenv(TZ='GMT')
- [R设置文件]将
编辑到TZ=“UTC”
Renviron.site
tz=“UTC”
可以解决问题。这不一定是错误的,这取决于应该是哪个时区。但是UTC使事情变得明确了。@smci,谢谢!这是我代码中的一个微妙错误!!相关报道:有。这可能是复制品
Time difference of 2497 hours