查找时间戳向量更改时区的位置

问题描述 投票:1回答:1

如何在时间戳向量中找到由于时间转换而切换到不同时区的元素?

样本数据:

ts <- structure(c(1521921600, 1521925200, 1521928800, 1521932400, 1521936000, 
                              1521939600, 1521943200, 1521946800, 1521950400, 1521954000, 1521957600
            ), class = c("POSIXct", "POSIXt"))

输出:

"2018-03-24 21:00:00 CET"  "2018-03-24 22:00:00 CET"  "2018-03-24 23:00:00 CET"  "2018-03-25 00:00:00 CET"  "2018-03-25 01:00:00 CET"  "2018-03-25 03:00:00 CEST" "2018-03-25 04:00:00 CEST" "2018-03-25 05:00:00 CEST" "2018-03-25 06:00:00 CEST" "2018-03-25 07:00:00 CEST" "2018-03-25 08:00:00 CEST"

前5个元素在CET中,然后切换到CEST。所以这里的答案是5或6.两个答案都没问题。

在样本数据中差异总是1小时,但我也需要不同的时间间隔,例如15或30分钟。

seq(min(ts), to = max(ts), by = 15*60)
seq(min(ts), to = max(ts), by = 30*60)

15分钟的预期答案是20/21。 30分钟的预期答案是10/11。

r timezone
1个回答
2
投票

你可以使用lubridatedst

which(!duplicated(dst(ts)))[2]

这将为您提供时区更改为夏令时的点。

© www.soinside.com 2019 - 2024. All rights reserved.