首页 > 解决方案 > 尝试使用 as_datetime() 将字符转换为日期时间,但在 R 中格式错误

问题描述

我面临一个问题,无法将started_at 和ended_at 字段正确转换为datatime格式。当我使用as_datetime()的年份从 2021 年变为 2001 年时。帮助。

初始数据为 char : 01-07-2020 00:00

使用后

total_trips$started_at <- as_datetime(total_trips$started_at)

我得到 2001-07-20 20:00:00

尝试使用

total_trips$started_at <- as_datetime(total_trips$started_at, "%m%d%Y %H%m")

我收到以下错误:

Error in C_force_tz(time, tz = tzone, roll) : CCTZ: Unrecognized output timezone: "%d%m%Y %H:%M"

怎么了??

标签: rdatetimechartidyverselubridate

解决方案


您应该更改格式以匹配您的数据,您的数据由破折号 (-) 分隔,因此正确的格式是%d-%m-%Y %Ror %d-%m-%Y %H:%M。请注意,这%R等价于%H:%M

library(lubridate)

as_datetime("01-07-2020 00:00", format = "%d-%m-%Y %R")
#> [1] "2020-07-01 UTC"
as_datetime("01-07-2020 17:59", format = "%d-%m-%Y %H:%M")
#> [1] "2020-07-01 17:59:00 UTC"

在此处了解有关日期时间转换格式的更多信息


推荐阅读