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

R 如何转换字符串末尾有AM/PM的时间戳?,r,R,我正在尝试将此时间戳转换为POSIXct t1 <- c("19-Jun-13 06.00.00.00 PM") t1Read?strtime%p,它仅适用于%I,而不适用于%H。您的时间格式也不正确。您的时间由“”分隔,而不是:“” 我不明白为什么strtime不能正确识别%p格式。但是,来自packagelubridate的功能dmy\U hms运行良好 lubridate::dmy\U hms(“2013年6月19日06.00.00.00下午”)创建以下结果: [1]“2013-0

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

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

t1Read
?strtime
<代码>%p
,它仅适用于
%I
,而不适用于
%H
。您的时间格式也不正确。您的时间由
”分隔,而不是
:“


我不明白为什么
strtime
不能正确识别
%p
格式。但是,来自package
lubridate
的功能
dmy\U hms
运行良好

lubridate::dmy\U hms(“2013年6月19日06.00.00.00下午”)
创建以下结果:

[1]“2013-06-19 18:00:00 UTC”

如果需要,可以“重新格式化”,例如Y-m-d H:m:

as.POSIXct(dmy_hms(“2013年6月19日06.00.00.00下午”),格式=“%Y-%m-%d%H:%m”)

[1] “2013-06-19 18:00:00 UTC”

这就是获取数据的方式。我需要将其转换为R中的时间戳。您的答案对我不起作用。@user1471980:我意识到您获取的数据的时间间隔为
,这就是为什么您必须使用
%I.%M.%OS
格式,而不是
%I:%M:OS
。那我的回答不起作用呢?它将字符串,
“19-Jun-13 06.00.00.00 PM”
转换为
POSIXct
对象。我在执行您的建议2013-06-19时得到了这个结果,我还需要小时和秒。@user1471980:这是时区转换问题。如果不知道您的OS和R版本,我就无法帮助调试它。您可以尝试在
as.POSIXct
调用中设置
tz=“GMT”
t1 <- as.POSIXct(t1, format="%d-%b-%y %H:%M:%S")
as.POSIXct("19-Jun-13 06.00.00.00 PM", format="%d-%b-%y %I.%M.%OS %p")