如何处理 lubridate 的 ymd 默认值的变化

How to deal with change in default of lubridate's ymd

在来自 lubridate 的 ymd 中,tz 的默认值是 UTC。我不知道确切的更改时间,但我知道在 1.5 中默认是 UTC,但在 1.5.8 中默认现在是 NULL

这将 ymd 的输出从 POSIXct 对象更改为 Date 对象,这破坏了我依赖 POSIXct 对象的很多代码,但现在有一个Date。有没有一种方便的方法可以使它向后兼容,或者我是否需要将 tz='UTC' 添加到我所有依赖于它的旧代码中?

编写一个包装器将 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"