У меня есть данные временных рядов, полученные от регистратора данных, который был настроен на один часовой пояс без перехода на летнее время ( NZST или UTC + 12: 00) , и данные охватывают несколько лет. Регистраторы данных не учитывают изменения летнего времени и синхронизируются по местному времени с / без летнего времени (в зависимости от того, кто его развернул).
Однако, когда я получаю данные в R, я не могу правильно использовать as.POSIXct
, чтобы игнорировать DST. Я использую R 2.14.0 на компьютере под управлением Windows со следующими настройками:
> Sys.timezone()
[1] "NZDT"
> Sys.getlocale("LC_TIME")
[1] "English_New Zealand.1252"
Вот три отметки времени весеннего перехода на летнее время, каждая с интервалом в 1 час:
> ts_str <- c("28/09/2008 01:00", "28/09/2008 02:00", "28/09/2008 03:00")
> as.POSIXct(ts_str, format="%d/%m/%Y %H:%M", tz="")
[1] "2008-09-28 01:00:00 NZST" NA
[3] "2008-09-28 03:00:00 NZDT"
> as.POSIXct(ts_str, format="%d/%m/%Y %H:%M", tz="UTC")
[1] "2008-09-28 01:00:00 UTC" "2008-09-28 02:00:00 UTC"
[3] "2008-09-28 03:00:00 UTC"
Как видите, часы перескочили вперед на 1 : 59 до 3:00, поэтому 2:00 недействительно, следовательно, NA. Кроме того, я могу использовать tz = "UTC"
, чтобы заставить его игнорировать изменения летнего времени. Однако я бы предпочел сохранить правильный часовой пояс, поскольку у меня есть другие записанные ряды данных с DST (NZDT или UTC + 13: 00), которые я хотел бы объединить (через merge
) для моего анализа.
Как настроить параметр tz
на компьютере с MS Windows? Я пробовал много вещей, таких как «NZST», «Стандартное время Новой Зеландии», «UTC + 12: 00», «+1200» и т. Д., Но безуспешно.Или мне изменить какой-то другой параметр?