由于某些原因,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包从数据库中读取数据,它会自动将整个datetimes列转换为POSIXct类。这会导致整个列丢失时间信息。
发布于 2013-05-30 02:49:02
这是一个夏令时问题:显然,2013-03-10的凌晨2点不存在于该时区。尽管如此,有趣的是(至少对我而言) as.POSIXct没有抱怨,而是默默地返回了一个稍微奇怪的答案。一个问题可能是,R通常使用系统库来处理其中的一些东西,因此底层库也是如此……
整合评论中的有用信息:@JoshUlrich指出,由于RODBC使用系统级时区而不是允许您指定时区,因此您可以在导入数据之前使用Sys.setenv(TZ="GMT")来绕过这一问题(假设原始数据确实是格林威治时间格式的)。
https://stackoverflow.com/questions/16821557
复制相似问题