生成跨越DST边界的一系列时间的好方法是什么?
例如,
startdst <- ymd_hms("2013-03-10 00:00:00",tz="America/Los_Angeles")
enddst <- ymd_hms("2013-11-03 00:00:00",tz="America/Los_Angeles")
在美国西海岸的DST过渡日开始时创造时间。
startday <- startdst + minutes(seq(0,to = 24*60, by = 15))
endday <- enddst + minutes(seq(0,to = 24*60, by = 15))
在两天内以15分钟的间隔创建瞬间。
那给了我
> head(startday,n=16)
[1] "2013-03-10 00:00:00 PST" "2013-03-10 00:15:00 PST"
[3] "2013-03-10 00:30:00 PST" "2013-03-10 00:45:00 PST"
[5] "2013-03-10 01:00:00 PST" "2013-03-10 01:15:00 PST"
[7] "2013-03-10 01:30:00 PST" "2013-03-10 01:45:00 PST"
[9] NA NA
[11] NA NA
[13] "2013-03-10 03:00:00 PDT" "2013-03-10 03:15:00 PDT"
[15] "2013-03-10 03:30:00 PDT" "2013-03-10 03:45:00 PDT"
即使03:00 PDT仅在太平洋标准时间01:45后15分钟。 IOW,为什么元素[9]到[12]呢?
同样,
> head(endday,n=16)
[1] "2013-11-03 00:00:00 PDT" "2013-11-03 00:15:00 PDT"
[3] "2013-11-03 00:30:00 PDT" "2013-11-03 00:45:00 PDT"
[5] "2013-11-03 01:00:00 PDT" "2013-11-03 01:15:00 PDT"
[7] "2013-11-03 01:30:00 PDT" "2013-11-03 01:45:00 PDT"
[9] "2013-11-03 02:00:00 PST" "2013-11-03 02:15:00 PST"
[11] "2013-11-03 02:30:00 PST" "2013-11-03 02:45:00 PST"
[13] "2013-11-03 03:00:00 PST" "2013-11-03 03:15:00 PST"
[15] "2013-11-03 03:30:00 PST" "2013-11-03 03:45:00 PST"
直接从太平洋标准时间1:45到太平洋标准时间2点,即使这些时间分开了75分钟。 IOW,太平洋标准时间1点到太平洋标准时间1点45分发生了什么?
顺便说一句,lubridate知道:
> diff(endday)
Time differences in mins
[1] 15 15 15 15 15 15 15 75 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
[26] 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
[51] 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
[76] 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
attr(,"tzone")
[1] "America/Los_Angeles"
如何在连续的条目中获得连续的时刻?
顺便说一下,这与Is there a way to assign DST transitions automatically in lubridate?松散相关。
比尔
答案 0 :(得分:0)
感谢R sequence of dates with lubridate,我找到了答案:
seq(startdst,startdst+hours(4),by="15 min")
seq(enddst,enddst+hours(4),by="15 min")
我不明白为什么我原来的方法失败了;它似乎应该给出相同的答案或抛出错误。