【发布时间】:2019-08-14 15:40:10
【问题描述】:
我正在尝试在 R 中导入一个包含日期时间的文本文件。时间以字符格式存储,没有时区信息,但我们知道它是法国时间(欧洲/巴黎)。
时区更改的日子出现问题:例如从2018-10-28 03:00:00 CEST 到2018-10-28 02:00:00 CET 有一个时间变化,因此我们的字符格式有重复,R 无法判断它是CEST 还是CET。
考虑以下示例:
data_in <- "date,val
2018-10-28 01:30:00,25
2018-10-28 02:00:00,26
2018-10-28 02:30:00,27
2018-10-28 02:00:00,28
2018-10-28 02:30:00,29
2018-10-28 03:00:00,30"
library(readr)
data <- read_delim(data_in, ",", locale = locale(tz = "Europe/Paris"))
我们最终在我们的日期中有重复:
data$date
[1] "2018-10-28 01:30:00 CEST" "2018-10-28 02:00:00 CEST" "2018-10-28 02:30:00 CET" "2018-10-28 02:00:00 CEST"
[5] "2018-10-28 02:30:00 CET" "2018-10-28 03:00:00 CET"
预期的输出是:
data$date
[1] "2018-10-28 01:30:00 CEST" "2018-10-28 02:00:00 CEST" "2018-10-28 02:30:00 CEST" "2018-10-28 02:00:00 CET"
[5] "2018-10-28 02:30:00 CET" "2018-10-28 03:00:00 CET"
知道如何解决问题(除了告诉人们使用 UTC 或 ISO 格式)。我想唯一的方法是假设日期是排序的,所以我们可以知道第一个是CEST。
【问题讨论】:
标签: r timezone lubridate posixct readr