我正在使用lubridate::parse_date_time
解析日期,有些日期不起作用。例如,为什么2004-04-04 02:00
返回NA
但2004-04-04 01:00
和2004-04-04 03:00
有效?
library("lubridate")
"2004-04-04 01:00" %>% parse_date_time(c("Ymd HM"), tz = "America/New_York")
"2004-04-04 02:00" %>% parse_date_time(c("Ymd HM"), tz = "America/New_York")
"2004-04-04 03:00" %>% parse_date_time(c("Ymd HM"), tz = "America/New_York")
以下是另外两个返回NA
的示例:
"20110313 0240" %>% parse_date_time(c("Ymd HM"), tz = "America/New_York")
"20130310 0255" %>% parse_date_time(c("Ymd HM"), tz = "America/New_York")
我正在使用lubridate版本1.6.0。
答案 0 :(得分:2)
2004-04-04 02:00
中没有America/New_York
。在2004-04-04 01:59:59 EST
之后,时钟会向前勾选2004-04-04 03:00:00 EDT
,开始夏令时。
您的时间戳可能存储在EST5
而不是America/New_York
。
> "2004-04-04 01:00" %>% parse_date_time(c("Ymd HM"), tz = "EST5") %>% with_tz("America/New_York")
[1] "2004-04-04 01:00:00 EST"
> "2004-04-04 02:00" %>% parse_date_time(c("Ymd HM"), tz = "EST5") %>% with_tz("America/New_York")
[1] "2004-04-04 03:00:00 EDT"