【发布时间】:2013-05-29 18:43:43
【问题描述】:
出于某种原因,as.POSIXct 将 "2013-03-10 02:00:00.000" 解释为不同于该格式的其他有效日期时间。
> as.POSIXct("2013-03-10 01:00:00.000") #Different time, same date
[1] "2013-03-10 01:00:00 PST"
> as.POSIXct("2013-03-11 02:00:00.000") #Same time, different date
[1] "2013-03-11 02:00:00 PDT"
> as.POSIXct("2013-03-10 02:00:00.000")
[1] "2013-03-10 PST"
我正在使用包RODBC 从数据库中读取它,它会自动将整列日期时间转换为POSIXct 类。这会导致整个列丢失时间信息。
【问题讨论】:
-
夏令时时移??? 2013-03-10 的凌晨 2 点在那个时区不存在吗?
-
@BenBolker 是对的。当天凌晨 2 点不存在。
-
当然——这可以解释从 PST 到 PDT 的转变。我想如果不更改
RODBC包的代码或更改数据库中的值,就没有简单的方法吗? -
@SeñorO:这很容易通过
Sys.setenv(TZ="GMT")解决。 -
@MatthewPlourde:不,尽管他的机器是 PST,但 OP 认为数据库中的数据是 GMT 格式;并且您无法在 RODBC 调用中设置时区,因此您可以通过将 R 的时区设置为 GMT 来解决该问题。