奇怪的POSIXct错误

时间:2013-05-29 18:43:44

标签: r posixct

出于某种原因,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类。这会导致整个列丢失时间信息。

1 个答案:

答案 0 :(得分:2)

这是一个夏令时问题:显然在2013-03-10凌晨2点在该时区不存在。尽管如此,({至少对我来说)as.POSIXct并没有抱怨,但却默默地回答了一个有点奇怪的答案。一个问题可能是R通常使用系统库来处理这些内容,因此底层库也是如此......

整合评论中的有用信息:@JoshUlrich指出您可以在导入数据之前使用Sys.setenv(TZ="GMT")解决此问题(前提是原始数据确实在GMT中),因为RODBC使用系统级时区而不是允许您指定它...