首页 > 解决方案 > 将 ISO 8601 从字符转换为 posixct 时出现奇怪的错误

问题描述

我正在使用以下数据框:

structure(list(id = 30042:30044, startTime = c("2016-03-13T00:00:00.000Z", 
"2016-03-13T02:00:00.000Z", "2016-03-13T03:00:00.000Z")), row.names = 1022:1024, class = "data.frame")

> mydf
        id                startTime
1022 30042 2016-03-13T00:00:00.000Z
1023 30043 2016-03-13T02:00:00.000Z
1024 30044 2016-03-13T03:00:00.000Z

当我尝试将 startTime 列从字符转换为时间时,出现了一个奇怪的 NA:

mydf <- mydf %>%
    dplyr::mutate(startTime = as.POSIXct(startTime, format = '%Y-%m-%dT%H:%M:%S'))

> mydf
     id           startTime
1 30042 2016-03-13 00:00:00
2 30043                <NA>
3 30044 2016-03-13 03:00:00

我对为什么会发生这种情况感到非常迷茫,已经用尽了我的调试工作并且只是感到困惑,因为 3 行的格式完全相同......感谢任何帮助!

编辑 - 这似乎是夏令时问题。真是头疼啊……

标签: rdatetime

解决方案


推荐阅读