R 不再接受格式为 GMT+n/GMT-n 的时区



?timezones状态"Most platforms support time zones of the form GMT+n and GMT-n, which assume at a fixed offset from UTC (hence no DST)."

有今年早些时候的旧代码,我使用tz="GMT-8".只有对我的计算机所做的更改是更新到 R 版本 "R version 3.2.2 (2015-08-14)" 并通过向位于 "C:Program FilesRR-3.2.2librarybaseR" 的 Rprofile 中添加一行代码来从旧用户帐户迁移我的库。只是为了详细的代码是.libPaths(c("C:/Users/XXXX XXXX/Documents/R/win-library/3.2",.Library.site)).为什么我的系统突然不接受这种 tz 格式?我可以更改什么系统设置来解决此问题?

下面的工作示例。

tdat<-c("11/19/2014 12:45", "11/19/2014 13:00", "11/19/2014 13:15", 
"11/19/2014 13:30", "11/19/2014 13:45", "11/19/2014 14:00", "11/19/2014 14:15", 
"11/19/2014 14:30", "11/19/2014 14:45", "11/19/2014 15:00")
as.POSIXct(strptime(tdat,"%m/%d/%Y %H:%M",tz="GMT-8"))
Warning messages:
1: In strptime(tdat, "%m/%d/%Y %H:%M", tz = "GMT-8") :
  unknown timezone 'GMT-8'
2: In as.POSIXct.POSIXlt(strptime(tdat, "%m/%d/%Y %H:%M", tz = "GMT-8")) :
  unknown timezone 'GMT-8'
3: In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'GMT-8'

如果您的平台使用的是标准 tzdb 时区,那么您确实可以以以下形式指定固定的整小时区域:Etc/GMT+8

但是,请注意:

  • 该标志与您可能期望的相反。 Etc/GMT-8在中国。 Etc/GMT+8在美国。

  • 现实世界中有很多时区使用半小时或 45 分钟偏移量,无法以这种形式表示。

  • 这不考虑夏令时或时区的其他历史变化。

因此,更好的主意是使用命名时区,如此处所示。

例如,对于美国太平洋时间,请使用 America/Los_Angeles ,因为它正确考虑了夏令时,在 UTC-8 和 UTC-7 之间交替。

相关内容

  • 没有找到相关文章

最新更新