CET/CEST 从 R 导出到 excel 时删除时移

CET/CEST time shift is dropped when exporting from R to excel

我 运行 使用 openxlsx 将时间序列从 R 导出到 Excel 时遇到夏令时问题,其中夏令时未保留在 excel 文件中。

数据框包含以 POSIXct 格式存储的时间,时区设置为“CET”。按照惯例,时间会在三月的第三个星期日向前移动一小时 02:00 以切换到夏令时 (CEST)。结果2019-03-3101:00:00CET后面跟着2019-03-3103:00:00CET,而2019-03-3102:00:00CET不存在

CET/CEST 开关在 R 中按预期工作,但不会保留在由此产生的 excel 文件中。例如,当 运行ning:

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 时间指示:

我已经在 macOS 和 Windows 10 系统上对此进行了测试,结果相同。 谁能告诉我我做错了什么?

这样试试:

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")