首页 > 解决方案 > 如何用 r 中的 00 分钟和 00 秒解析日期和时间?

问题描述

我有一个大型数据集,其中日期和时间为 16 位(格式为yyyymmddhhmmssssor 2005031600003000)字符串。

我编写了以下解析命令(从字符串中删除最后 2 位数字):

DATA[, 1 ] <- substr(DATA[, 1 ], 1, 14)
DATA[, 1 ] <- ymd_hms(DATA[, 1 ], quiet = FALSE)

解析工作正常,除了 00 分钟和 00 秒(例如2005030507000000)无法解析的时间。

有解决这个问题的方法吗?parse_date_time命令有完全相同的问题。

标签: rdatetimelubridate

解决方案


尝试as.POSIXct将最后两个零传递给格式化

x <- c("2005031600003000", "2005030507000000")
as.POSIXct(x, format = "%Y%m%d%H%M%S00")
# [1] "2005-03-16 00:00:30 CET" "2005-03-05 07:00:00 CET"

?strptime

%H : 小时为十进制数 (00–23) ...

%M : 分钟为十进制数 (00–59)

%S : 秒为整数 (00–61) ...


推荐阅读