来自lubridate的ymd
,tz
的默认值为UTC
。我不确切知道何时进行了更改,但我知道在1.5中默认为UTC但在1.5.8中默认为NULL
。
这会将ymd
的输出从POSIXct
个对象更改为Date
个对象,这会破坏我的很多代码,我依赖于POSIXct
个对象但现在有了Date
。有没有一种方便的方法可以向后兼容,还是我需要将tz='UTC'
添加到依赖于此的所有旧代码中?
答案 0 :(得分:2)
编写一个包装,将ymd
替换为ymd_hms
,其默认值仍为tz = "UTC"
library(lubridate)
ymd2 = function(x){
ymd_hms(paste(x, "00:00:00"))
}
ymd2("2017/3/4")
#[1] "2017-03-04 UTC"
class(ymd2("2017/3/4"))
#[1] "POSIXct" "POSIXt"