R - 从一年中获取夏令时开始和结束

Posted

技术标签:

【中文标题】R - 从一年中获取夏令时开始和结束【英文标题】:R - Get Daylight Saving Beginning and Ending from year 【发布时间】:2020-08-16 09:23:21 【问题描述】:

我的问题很简单,但我并没有真正找到答案。

我想写一个这样的函数:

get_dst <- function(y = 2019)


y 是函数的年份输入

输出应该是代表欧洲夏令时开始和结束的日期时间列表或向量。

2019 年的输出将是:

31-03-2019 02:00:00, 27-10-2019 03:00:00

2020 年的输出将是:

29-03-2020 02:00:00, 25-10-2019 03:00:00

此外,我认为 dplyr 应该有办法在对日期时间的变量进行分组时处理它们,因为它们很难使用。

【问题讨论】:

【参考方案1】:

在函数中,我们可以创建一个序列并应用dst 来返回TRUE/FALSE,子集并获得range

get_dst <- function(y = 2019, tz)
         start <- paste0(y, '-01-01')
         end <- paste0(y, '-12-31')
         d1 <- seq(as.POSIXct(start, tz = tz),
              as.POSIXct(end, tz =tz), by = 'hour')
         range(d1[lubridate::dst(d1)])
  

get_dst(2019,  "America/New_York")

【讨论】:

你知道如何在与 dplyr 分组时处理这个问题吗? @J.Doe 如果您可以发布一个新问题,那就太好了 ***.com/questions/61551392/…

以上是关于R - 从一年中获取夏令时开始和结束的主要内容,如果未能解决你的问题,请参考以下文章

启用夏令时时如何在 T-SQL 中获取一天的开始和结束?

如何在 SQL Server 中创建夏令时开始和结束函数

Ruby/Rails 中的夏令时开始和结束日期

获取任何时区的 DST 开始和结束日期

为啥 R 在多年之间不能始终如一地处理夏令时?

夏令时持续时间