R 用 lubridate 在 DST 上添加月份会产生意想不到的结果

Posted

技术标签:

【中文标题】R 用 lubridate 在 DST 上添加月份会产生意想不到的结果【英文标题】:R adding month over DST with lubridate gives unexpected result 【发布时间】:2019-03-12 22:17:33 【问题描述】:

在 DST 期间添加一个月时,我得到了意想不到的结果。我预计结果是“2018-11-01 GMT”。当我在 Windows 上运行此代码时,我得到了正确的结果,但是当我在 Red Hat Server 上运行相同的东西时,月份没有添加,见下文。

> d = as.POSIXct('2018-10-01 00:00:00', tz = 'Europe/London')
> d + months(1)
[1] "2018-10-01 BST"

有人知道发生了什么吗?

【问题讨论】:

【参考方案1】:

使用 lubridate 的 %m+% 解决了这个问题

> d %m+% months(1)

【讨论】:

以上是关于R 用 lubridate 在 DST 上添加月份会产生意想不到的结果的主要内容,如果未能解决你的问题,请参考以下文章

如何从R中具有月份名称的时间戳中提取日期

R:Lubridate 无法将字符转换为数字

R Lubridate dmy 输出格式

r 将字符串转换为datetime lubridate

R语言使用lubridate包的tz函数设置和查询日期时间对象的时区信息( time zone)

为啥 R lubridate::duration 数据类型使用 sparklyr 转换为 spark 中的字符?