Смещение времени CET / CEST сбрасывается при экспорте из R в Excel - PullRequest
0 голосов
/ 05 марта 2020

У меня возникла проблема с летним временем при экспорте временных рядов из R в Excel с использованием openxlsx, где летнее время не сохраняется в файле excel.

Кадр данных содержит времена, сохраненные в формате POSIXct с часовым поясом, установленным в "CET". Согласно соглашению, в третье воскресенье марта 02:00 время сдвигается на один час вперед, чтобы перейти на летнее время (CEST). В результате за 2019-03-31 01:00 CET следует 2019-03-31 03:00:00 CET, а 2019-03-31 02:00:00 CET не существует.

Переключатели CET / CEST работают как положено в R, но не сохраняются в результате в файле Excel. Например, при запуске:

require(openxlsx)
CEST_test<-data.frame(date=c(as.POSIXct("2019-03-31 01:00:00", tz="CET"),as.POSIXct("2019-03-31 03:00:00", tz="CET")))
write.xlsx(CEST_test,"CEST_test.xlsx")

Полученный файл Excel игнорирует переключение на CEST, что приводит к ошибочной индикации времени без CET в третьей строке:

non-existing time in excel

Я тестировал это на macOS и на системе Windows 10, с одинаковыми результатами. Кто-нибудь сможет сказать мне, что я делаю неправильно?

1 Ответ

1 голос
/ 07 марта 2020

Попробуй так:

require(openxlsx)
options("openxlsx.datetimeFormat" = "yyy-mm-dd hh:mm:ss %Z")

dd <- c("2019-03-31 01:00:00", "2019-03-31 03:00:00")
CEST_date <- as.POSIXlt(dd, tz = "CET")
CEST_date <- format(CEST_date, usetz = TRUE)
CEST_test <- as.data.frame(CEST_date)
write.xlsx(CEST_test,"CEST_test.xlsx")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...