【发布时间】:2018-02-20 15:39:56
【问题描述】:
我使用库 RODBC 从数据库中提取信息。
library(RODBC)
stats <- function(user, pswd){
qry <- " select mydatetime from bar"
cn <- odbcConnect("A", uid=user, pwd= pswd)
rst <- sqlQuery(cn, qry, stringsAsFactors = F)
odbcClose(cn)
rm(list = c("cn", "qry"))
rst
}
my_list <- stats("a", "b")
我对输出感到困惑。这是一个 POSIXct 日期时间。当我my_list$mydatetime列表时,它是这样呈现的:
[1] "2018-01-19 14:54:23 CET" "2018-01-19 14:53:22 CET" "2018-01-19 14:52:53 CET" "2018-01-19 14:51:50 CET"
[5] "2018-01-12 11:32:44 CET" "2018-01-12 11:32:02 CET" "2018-01-19 06:53:35 CET" "2018-01-19 06:52:06 CET"
[9] "2018-01-16 08:50:46 CET" "2018-01-16 08:49:59 CET" "2018-01-16 08:51:47 CET" "2018-01-15 05:31:53 CET"
注意CET,这是正确的时区。当我运行attr(my_list$mydatetime,"tzone") 时,我得到""。
我的问题不是如何添加时区,而是为什么在打印列表时显示时区-这很令人困惑,因为我假设它被视为 CET 日期时间,事实上,它似乎是一个没有时区的日期时间?
【问题讨论】:
-
看来你的疑惑是对的。当我从数据库中读取同样的事情时,似乎时区设置为系统时区。类似的讨论在这里:stackoverflow.com/questions/37688509/…。但是当我设置一个新的
POSIXct对象library(lubridate);testTime1<-ymd_hm("2018-01-01 00:00")时区设置为UTC