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

R与Lubridate:导入CSV文件时如何设置时区

解决read_csv中设置datetime时区的问题及提取时区方法

报错原因

col_datetime()函数本身不支持locale或tz参数,这些参数需要传递给read_csv()的全局设置,或者在导入后单独处理datetime列。

正确设置时区的两种方法

方法1:在read_csv中全局指定locale

将时区设置放在read_csv()的locale参数中,所有datetime列都会应用这个时区:

example3 <- read_csv("NAME, TRNSCO, ID, DPMNEM, DATE, PEAK
                 BEC,EGSI,1062,SERP,10/12/2022 18:00,6.464
                 BEC,EGSI,1072,SPTR,10/30/2022 22:00,67.456
                 BEC,EGSI,1152,DYNE,10/24/2022 12:00,4.606
                 CLA,ELI,3023,FRMR,10/12/2022 17:00,6.352
                 CLA,ELI,3043,SHON,10/19/2022 8:00,2.296
                 CLA,ELI,3063,BERN,10/20/2022 7:00,5.232",
            col_types = cols_only(
              NAME = col_character(),
              ID =  col_character(),
              DPMNEM = col_character(),
              DATE = col_datetime(format = "%m/%d/%Y %H:%M"),
              PEAK = col_double()),
            locale = locale(tz = "US/Central"))

方法2:导入后单独设置时区

先按默认方式导入数据,再用lubridate包的force_tz()函数为datetime列指定时区:

library(lubridate)

# 先导入数据
example3 <- read_csv("NAME, TRNSCO, ID, DPMNEM, DATE, PEAK
                 BEC,EGSI,1062,SERP,10/12/2022 18:00,6.464
                 BEC,EGSI,1072,SPTR,10/30/2022 22:00,67.456
                 BEC,EGSI,1152,DYNE,10/24/2022 12:00,4.606
                 CLA,ELI,3023,FRMR,10/12/2022 17:00,6.352
                 CLA,ELI,3043,SHON,10/19/2022 8:00,2.296
                 CLA,ELI,3063,BERN,10/20/2022 7:00,5.232",
            col_types = cols_only(
              NAME = col_character(),
              ID =  col_character(),
              DPMNEM = col_character(),
              DATE = col_datetime(format = "%m/%d/%Y %H:%M"),
              PEAK = col_double()))

# 设置时区
example3$DATE <- force_tz(example3$DATE, tzone = "US/Central")

提取datetime列的时区信息

可以用lubridate包的tz()函数直接提取:

tz(example3$DATE)

或者通过attr()函数获取属性值:

attr(example3$DATE, "tzone")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:50:34