这一直引起我的问题 . 我有一列日期时间字符串,如下所示:
"2016-09-13 22:27:37.320 UTC"
我一直试图让他们使用以下方法强制进入POSIXct对象:
library(anytime)
final$contact <- as.POSIXct(anytime(final$contact, tz="UTC"))
但它给了我时间,好像我将它从我的本地时区(EST)转换为UTC,尽管我在字符串中包含UTC,然后在任何时候指定tz是UTC:
2016-09-14 02:27:37
最终的目标是将它们传递给:
for (i in 1:NROW(final$first_rpc)){
final$localcontact[i] <- format(final$contact[i],
tz=as.character(final$timezone.x[i]),
usetz = TRUE)
}
这样每次都使用其各自的时区而不是UTC(这是数据存储在我们数据库中的方式) .
这是关于我尝试的第四个版本,我真的不知道如何使它按照我喜欢的方式工作,其中的字符串转换为仍然是UTC的POSIXct对象 . 有没有办法让任何时候/ as.POSIXct意识到这些已经在UTC了?
3 回答
我认为您需要包含usetz和tz参数才能获得
as.POSIXct
以表示UTC的名称 . %z和%Z格式仅用于输出:`随时(来自相同名称的包)使用不同的参数名称:
与未命名的数据库(可能是本土的)一样,R将所有日期时间对象存储为UTC,并且仅在输出时应用时区指示符 . 如果你有混合的时区,那么你将需要对它们进行预处理并将相关的源TZ存储为字符值,然后再发送到
strptime
或as.POSIXct
,正如您所预期的那样 .我们不需要在这里指定
format
,因为它已经是Date Time
格式数据