lubridate 真的记录闰秒吗?

Does lubridate really register leap seconds?

我正在查看 R 包 lubridate。我正在比较它的功能 days()ddays()。根据维基百科和全局变量 .leap.seconds,1997/06/30 和 1997/07/01 之间有一个闰秒。因此,我期待

ymd_hms("19970630 02:13:01", tz="GMT") + days(2) == ymd_hms("19970630 02:13:01", tz="GMT") + ddays(2)

为 FALSE,因为 days(x) 仅将天数增加 x,而 ddays(x) 将秒数增加 86400x。然而,上面的说法returns TRUE。我错过了什么?

根据 Mikael Jagan 和 Sandwichnick 的回答,我得出以下结论:

lubridate 忽略闰秒以匹配 POSIX 时间标准。因此,days()ddays() 在闰秒(例如 1997 年 6 月 30 日)上提供相同的结果。

> ymd_hms("19970630 02:13:01", tz = "UTC")+ddays(2) 
[1] "1997-07-02 02:13:01 UTC"
> ymd_hms("19970630 02:13:01", tz = "UTC")+days(2) 
[1] "1997-07-02 02:13:01 UTC"

但是,lubridate 确实记录了夏令时,因此 days()ddays() 在这种情况下确实有所不同,如下例所示:

> ymd_hms("20211030 14:45:06", tz = "Europe/Berlin")+days(1)
[1] "2021-10-31 14:45:06 CET"
> ymd_hms("20211030 14:45:06", tz = "Europe/Berlin")+ddays(1)
[1] "2021-10-31 13:45:06 CET"