生成跨越 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 仅在太平洋标准时间 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:00,即使这些时间相隔 75 分钟。IOW,太平洋标准时间 1:00 到太平洋标准时间 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"
如何在连续条目中获得连续瞬间?
顺便说一句,这与是否有办法在 lubridate 中自动分配 DST 转换?.
账单