我有一些时间序列数据,是从一个设置为不考虑夏令时的时区(NZST 或 UTC+12:00)的数据记录器中获得的,这些数据跨越了几年。数据记录器不考虑 DST 的更改,并根据部署人员的情况同步到带/不带 DST 的本地时间。
但是,当我将数据导入R中时,我无法正确使用
正如您所看到的,时钟在1:59跳到了3:00,因此2:00是无效的,因此为NA。此外,我可以使用
但是,当我将数据导入R中时,我无法正确使用
as.POSIXct
来忽略DST。我在Windows计算机上使用R 2.14.0,并具有以下设置:> Sys.timezone()
[1] "NZDT"
> Sys.getlocale("LC_TIME")
[1] "English_New Zealand.1252"
以下是春季夏令时变更期间的三个时间戳,每个时间戳相隔1小时:
> ts_str <- c("28/09/2008 01:00", "28/09/2008 02:00", "28/09/2008 03:00")
> as.POSIXct(ts_str, format="%d/%m/%Y %H:%M", tz="")
[1] "2008-09-28 01:00:00 NZST" NA
[3] "2008-09-28 03:00:00 NZDT"
> as.POSIXct(ts_str, format="%d/%m/%Y %H:%M", tz="UTC")
[1] "2008-09-28 01:00:00 UTC" "2008-09-28 02:00:00 UTC"
[3] "2008-09-28 03:00:00 UTC"
正如您所看到的,时钟在1:59跳到了3:00,因此2:00是无效的,因此为NA。此外,我可以使用
tz="UTC"
来忽略DST更改。然而,我宁愿保持正确的时区,因为我还记录了其他数据系列带有 DST(NZDT或UTC+13:00),我想通过merge
混合进行分析。
如何在MS Windows计算机上配置tz
参数?我尝试了许多方法,例如“NZST”,“新西兰标准时间”,“UTC + 12:00”,“+1200”等,但没有成功。还是我修改了其他设置?