我不知道发生了什么,但我对此感到恼火。我目前在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 !!
感谢任何帮助。
答案 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上的默认值)。