【发布时间】:2016-04-30 04:46:37
【问题描述】:
timeDate 在 GMT 时区存储一些美国假期。由于夏令时,格林威治标准时间和美国时区之间的差异全年不同,因此美国假期不应存储在格林威治标准时间时区中。
- EST = GMT - 5 而不是夏令时
- EST = GMT - 4 从 3 月的第 2 个星期日到 11 月的第 1 个星期日。 (又名 EDT)
这可能会带来一些问题。例如:
library(timeDate)
holidayEIA <- function(x){ c(holidayNYSE(x),
USColumbusDay(x)@Data,
USVeteransDay(x)@Data)}
HolidaysEIA <- holidayEIA (2015)
#Output:
NewYork
[1] [2015-01-01 00:00:00] [2015-01-19 00:00:00] [2015-02-16 00:00:00]
[4] [2015-04-03 00:00:00] [2015-05-25 00:00:00] [2015-07-03 00:00:00]
[7] [2015-09-07 00:00:00] [2015-11-26 00:00:00] [2015-12-25 00:00:00]
[10] [2015-10-11 20:00:00] [2015-11-10 19:00:00]
这里holidayNYSE 是美国东部时间/美国东部时间时区,而USColumbusDay 和USVeteransDay 是格林威治标准时间。必须执行以下操作才能均衡:
library(timeDate)
holidayEIA <- function(x){ c(holidayNYSE(x),
USColumbusDay(x)@Data+ 14400,
USVeteransDay(x)@Data+ 18000)}
HolidaysEIA <- holidayEIA (2015)
#Output
NewYork
[1] [2015-01-01] [2015-01-19] [2015-02-16] [2015-04-03] [2015-05-25]
[6] [2015-07-03] [2015-09-07] [2015-11-26] [2015-12-25] [2015-10-12]
[11] [2015-11-11]
这不是一个真正的问题,但鉴于 SO 是一个问答网站,请允许我将其表述为一个。你不同意timeDate 应该在本地时区存储假期,以及在同一时区下存储每个国家/地区的所有假期吗?
【问题讨论】:
-
要求我们同意一个非推荐的包应该有不同的设计是太离题了。
-
OK 将把它取下来。网站的新手。在删除之前,你为什么说不推荐?
-
推荐的软件包是随 R 一起提供的。stackoverflow.com/questions/9700799/… 其他软件包是其作者和维护者的责任(具有广泛不同的功能)。他们是负责设计决策的人,而不是我们。我从来没有见过那个包在使用中,所以我认为它在 R 包的“边缘”上相当远。但这只是一个老家伙的观点,这不是 SO 维护者想要看到的。
-
谢谢。我发现马特约翰逊的回答很有趣。即使不在主题范围内,也要保持这一点。