Sys.Date()显示错误的日期

时间:2017-12-08 06:44:47

标签: r macos date

我不知道发生了什么,但我对此感到恼火。我目前在GMT-8时区。当我输入Sys.Date()时,它会返回明天的日期。

截至目前的当前日期&时间是12/7/17 10:41 PM: 我输入Sys.time(),这就是我得到的:

Sys.time()
[1] "2017-12-08 14:37:22 GMT"

然后我尝试设置我的时区:Sys.setenv(TZ=Sys.timezone())

它会毫无错误地清除......然后我再次输入Sys.Date()并获得

Sys.Date()
[1] "2017-12-08"

应该是12/7/17 !!

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

在我的mac系统上,我在更新到Mac OS 10.13.2之后看到了R 3.4.1:

Sys.time()
[1] "2017-12-08 20:52:01 GMT"
Warning:
In as.POSIXlt.POSIXct(x, tz) :
  unknown timezone 'zone/tz/2017c.1.0/zoneinfo/Europe/Berlin'

我可以通过设置Sys.setenv(TZ = "Europe/Berlin")来解决这个问题。可以使用OlsonNames()[grepl("US", OlsonNames())]找到美国的有效时区名称。

升级到R 3.4.3后,我看到了:

Sys.time()
[1] "2017-12-08 21:57:15 CET"

Sys.timezone()
#[1] "Europe/Berlin"

因此,由于操作系统更新,这看起来像是一个问题。实际上,R 3.4.3的发行说明说明了这一点:

  

为时区位置的更改添加了一种解决方法   文件在macOS 10.13'High Sierra'中,再次在10.13.1中,所以   R时,系统设置正确推导出默认时区   配置了--with-internal-tzcode(macOS上的默认值)。