使用R基础函数将EST转UTC:夏令时适配问题求助
解决R中EST/EDT转UTC的夏令时问题
你遇到的问题核心是使用了tz="EST"——这是一个固定偏移UTC-5小时的时区,不会自动识别夏令时(EDT时段应为UTC-4小时)。要让R自动处理夏令时切换,需使用对应地区的标准时区数据库名称,比如"America/New_York",它会根据日期自动在EST(冬令时)和EDT(夏令时)之间切换。
修正后的代码
# 读取数据 data <- read.csv("data.csv") data1 <- data # 正确解析时间字符串:使用支持夏令时的时区 data1$time <- as.POSIXct(data1$time, format="%m/%d/%Y %H:%M:%S", tz="America/New_York") # 转换为UTC时区 data1$time <- as.POSIXct(data1$time, tz="UTC") # 验证时区属性 attributes(data1$time)$tzone
关键说明
America/New_York是IANA时区数据库的标准名称,能自动适配夏令时规则,确保冬令时按UTC-5、夏令时按UTC-4转换。- POSIXct对象内部存储的是UTC时间戳,修改时区属性或用
as.POSIXct()指定tz="UTC",本质是调整时间的显示时区,不会改变实际时间戳的准确性。
内容的提问来源于stack exchange,提问作者ebrahimi
相关产品推荐
相关产品推荐

