You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言使用POSIXct函数获取多时区夏令时数据的实现问题

修改后代码

require("lubridate")

dayLightSavings = function(y = format(Sys.Date(), "%Y"), tz = c("America/New_York", "Europe/London")){
    # 遍历所有时区计算夏令时范围
    res <- lapply(tz, function(tz_single){
        startDate = paste0(y, '-01-01')
        endDate = paste0(y, '-12-31')
        d1 = seq(as.POSIXct(startDate, tz = tz_single),
            as.POSIXct(endDate, tz = tz_single), by = 'hour')
        range(d1[lubridate::dst(d1)])
    })
    # 给结果添加时区名标识
    names(res) <- tz
    return(res)
}

核心修改说明

  • 给tz参数设置默认值为需求指定的两个时区向量,满足把配置放在参数定义中的要求
  • 新增多时区遍历逻辑,支持一次性返回多个时区的计算结果

调用说明

直接执行dayLightSavings()即可得到默认两个时区当前年度的夏令时起止时间,输出为命名列表结构,每个元素对应对应时区的夏令时起止时间向量。如果需要计算其他年度或其他时区的结果,手动传入y和tz参数即可。

内容的提问来源于stack exchange,提问作者worldCurrencies

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:54:06