←
PDF 280 / 520 Time Zones
→
English · PDF 280
Original PDF page 280
中文 · PDF 280
    1. 创建一个日期向量,给出 2015 年每个月的第一天。再创建一个日期向量,给出当前年份每个月的第一天。
    1. 编写一个函数,给定你的生日(作为日期),返回你现在的年龄(以年为单位)。
    1. 为什么 (today() %--% (today() + years(1)) / months(1) 不能工作?

时区

由于时区与地缘政治实体的相互影响,时区是一个极其复杂的话题。幸运的是,我们不需要深入研究所有细节,因为它们对数据分析并不那么重要,但仍有几个挑战需要我们正面应对。

第一个挑战是,时区的日常名称往往有歧义。例如,如果你是美国人,你可能熟悉 EST,即东部标准时间(Eastern Standard Time)。然而,澳大利亚和加拿大也都有 EST!为了避免混淆,R 使用国际标准的 IANA 时区。这些时区采用一致的命名方案,使用 "/",通常形如 "/"(有一些例外,因为并非每个国家都位于某个大洲上)。例如 "America/New_York"、"Europe/Paris" 和 "Pacific/Auckland"。

你可能会奇怪,为什么时区用城市来命名,而通常你认为时区是与国家或国家内的地区相关联的。这是因为 IANA 数据库必须记录长达数十年的时区规则。在这几十年间,国家更名(或分裂)相当频繁,但城市名称往往保持不变。另一个问题是,名称不仅需要反映当前的行为,还需要反映完整的历史。例如,"America/New_York" 和 "America/Detroit" 都有各自的时区。这两个城市目前都使用东部标准时间,但在 1969–1972 年,密歇根州(底特律所在的州)没有遵循夏令时(DST),所以它需要一个不同的名称。值得去阅读原始时区数据库(可在 http://www.iana.org/time-zones 获取),就为了读读其中的一些故事!

你可以用以下代码查看 R 认为你的当前时区是什么 Sys.timezone():