English · PDF 280
(today() %--% (today() + years(1)) / months(1) 不能工作?由于时区与地缘政治实体的相互影响,时区是一个极其复杂的话题。幸运的是,我们不需要深入研究所有细节,因为它们对数据分析并不那么重要,但仍有几个挑战需要我们正面应对。
第一个挑战是,时区的日常名称往往有歧义。例如,如果你是美国人,你可能熟悉 EST,即东部标准时间(Eastern Standard Time)。然而,澳大利亚和加拿大也都有 EST!为了避免混淆,R 使用国际标准的 IANA 时区。这些时区采用一致的命名方案,使用 "/",通常形如 "
你可能会奇怪,为什么时区用城市来命名,而通常你认为时区是与国家或国家内的地区相关联的。这是因为 IANA 数据库必须记录长达数十年的时区规则。在这几十年间,国家更名(或分裂)相当频繁,但城市名称往往保持不变。另一个问题是,名称不仅需要反映当前的行为,还需要反映完整的历史。例如,"America/New_York" 和 "America/Detroit" 都有各自的时区。这两个城市目前都使用东部标准时间,但在 1969–1972 年,密歇根州(底特律所在的州)没有遵循夏令时(DST),所以它需要一个不同的名称。值得去阅读原始时区数据库(可在 http://www.iana.org/time-zones 获取),就为了读读其中的一些故事!
你可以用以下代码查看 R 认为你的当前时区是什么 Sys.timezone():