R 分析时间戳-未识别AM/PM

R 分析时间戳-未识别AM/PM,r,datetime,timestamp,posixct,R,Datetime,Timestamp,Posixct,我正在尝试将一些时间戳(字符)转换为POSIXct对象: > u <- "December 05, 2017 1:00 PM" 我希望输出显示小时的13,而不是01: "2017-12-05 13:00:00 UTC" 我在这里看到了这个问题:但是我似乎有正确的输入和格式字符串(使用%p) as.POSIXct似乎完全忽略了字符串的AM/PM部分,因此AM时间戳工作正常,但PM时间戳滞后12小时。这里有更多的数据来说明这一点: > sample_tstamps [1] "

我正在尝试将一些时间戳(字符)转换为
POSIXct
对象:

> u <- "December 05, 2017 1:00 PM"
我希望输出显示小时的
13
,而不是
01

"2017-12-05 13:00:00 UTC"
我在这里看到了这个问题:但是我似乎有正确的输入和格式字符串(使用
%p

as.POSIXct
似乎完全忽略了字符串的AM/PM部分,因此AM时间戳工作正常,但PM时间戳滞后12小时。这里有更多的数据来说明这一点:

> sample_tstamps
 [1] "December 05, 2017 8:00 AM"  "December 05, 2017 9:00 AM"  "December 05, 2017 10:00 AM" "December 05, 2017 11:00 AM"
 [5] "December 05, 2017 12:00 PM" "December 05, 2017 1:00 PM"  "December 05, 2017 2:00 PM"  "December 05, 2017 3:00 PM" 
 [9] "December 05, 2017 4:00 PM"  "December 05, 2017 5:00 PM" 
> as.POSIXct(sample_tstamps, format = "%B %d, %Y %H:%M %p", tz = "UTC")
 [1] "2017-12-05 08:00:00 UTC" "2017-12-05 09:00:00 UTC" "2017-12-05 10:00:00 UTC" "2017-12-05 11:00:00 UTC"
 [5] "2017-12-05 12:00:00 UTC" "2017-12-05 01:00:00 UTC" "2017-12-05 02:00:00 UTC" "2017-12-05 03:00:00 UTC"
 [9] "2017-12-05 04:00:00 UTC" "2017-12-05 05:00:00 UTC"

使用R-package
lubridate

u <- "December 05, 2017 1:00 PM"
lubridate::mdy_hm(u)
#[1] "2017-12-05 13:00:00 UTC"

u我们需要
%I
而不是
%H

as.POSIXct(u, format = "%B %d, %Y %I:%M %p", tz = "UTC")
#[1] "2017-12-05 13:00:00 UTC"

谢谢,它似乎有效,我将更新代码。但是我很惊讶-我过去一直使用
%H
(请参阅),没有任何问题。谢谢,我可以使用它,但我不想使用任何外部软件包来解决此特定问题。
as.POSIXct(u, format = "%B %d, %Y %I:%M %p", tz = "UTC")
#[1] "2017-12-05 13:00:00 UTC"