当脚本在不同的操作系统上运行时,时区在R中错误计算

时间:2016-10-06 07:39:35

标签: r macos datetime ubuntu posixct

我在两台不同的机器上运行完全相同的R脚本,并得到了不同的结果。我不明白为什么......

将此整数视为自1990-01-01 00:00:00 GMT+10

以来的秒数
int <- 817779600

我需要将它转换为POSIXct对象并且这样做我在运行&#34; OSX 10.11.4&#34;:

的计算机上运行以下R脚本
> time <- as.POSIXct(as.POSIXlt(int, origin='1990-01-01 00:00:00', 
                                tz='GMT'), tz='Australia/Sydney')
> time
[1] "2015-12-01 01:00:00 AEDT"
> as.integer(time)
[1] 1448892000

现在如果我在运行&#34; Ubuntu 16.04.1 LTS&#34;的另一台计算机上运行完全相同的代码我得到了不同的结果:

> time <- as.POSIXct(as.POSIXlt(int, origin='1990-01-01 00:00:00', 
                                tz='GMT'), tz='Australia/Sydney')
> time
[1] "2015-12-01 02:00:00 AEDT"
> as.integer(time)
[1] 1448895600

我知道第一个值是正确的。有什么可能导致这种差异的想法?在两台机器上以bash运行日期会产生相同的结果。还有人能够重现这个错误吗?

提前致谢。

0 个答案:

没有答案