如何转换字符串末尾有AM / PM的时间戳?

时间:2013-06-21 16:50:29

标签: r

我正在尝试将此时间戳转换为POSIXct

t1 <- c("19-Jun-13 06.00.00.00 PM")

如果我这样做:

t1 <- as.POSIXct(t1, format="%d-%b-%y %H:%M:%S")

这会转换这个时间戳吗?那是否最终考虑了AM / PM?

2 个答案:

答案 0 :(得分:9)

阅读?strptime%p,仅适用于%I,而非%H。您的时间格式也不正确。您的时间间隔为".",而不是":"

as.POSIXct("19-Jun-13 06.00.00.00 PM", format="%d-%b-%y %I.%M.%OS %p")

答案 1 :(得分:0)

我没有说明为什么strptime无法正确识别%p格式。但是,包dmy_hms中的函数lubridate效果很好。

lubridate::dmy_hms("19-Jun-13 06.00.00.00 PM")会产生以下结果:

[1] "2013-06-19 18:00:00 UTC"

如果你愿意,你可以“重新格式化”,例如Y-m-d H:M:

as.POSIXct(dmy_hms("19-Jun-13 06.00.00.00 PM"), format="%Y-%m-%d %H:%M") [1] "2013-06-19 18:00:00 UTC"