【发布时间】:2015-12-28 21:12:39
【问题描述】:
我有一列字符格式的时间戳,如下所示:
2015-09-24 06:00:00 UTC
2015-09-24 05:00:00 UTC
dateTimeZone <- c("2015-09-24 06:00:00 UTC","2015-09-24 05:00:00 UTC")
我想使用 POSIXct 将此字符数据转换为时间数据,如果我知道所有时间戳都是 UTC,我会这样做:
dateTimeZone <- asPOSIXct(dateTimeZone, tz="UTC")
但是,我不一定知道所有时间戳都是 UTC,所以我尝试了
dateTimeZone <- asPOSIXct(dateTimeZodateTimeZone, format = "%Y-%m-%d %H:%M:%S %Z")
但是,由于 strptime 仅支持 %Z 用于输出,因此返回以下错误:
strptime(x, format, tz = tz) 中的错误: 不支持使用 %Z 进行输入
我检查了 lubridate 包的文档,我看不出它处理这个问题的方式与 POSIXct 有什么不同。
我唯一的选择是检查每一行的时区,然后使用适当的时区,如下所示?
temp[grepl("UTC",datetimezone)] <- as.POSIXct(datetimezone, tz="UTC")
temp[grepl("PDT",datetimezone)] <- as.POSIXct(datetimezone, tz="America/Los_Angeles")
【问题讨论】: