R 使用am和pm将字符日期/时间转换为日期/时间格式

R 使用am和pm将字符日期/时间转换为日期/时间格式,r,lubridate,R,Lubridate,我正在尝试使用strtime将字符日期时间转换为日期/时间格式。数据以千年一度(1/29/20下午3:43)为单位 我的代码当前如下所示: comp_report_tz$Start_Date_Time <- strptime(comp_report_tz$Start_Date_Time, format = "%m/%d/%y %H:%M %p") comp\u report\u tz$Start\u Date\u Time进行以下更改: 在小时内使用%I 对am/pm使用%p 确保格式

我正在尝试使用strtime将字符日期时间转换为日期/时间格式。数据以千年一度(1/29/20下午3:43)为单位

我的代码当前如下所示:

comp_report_tz$Start_Date_Time <- strptime(comp_report_tz$Start_Date_Time, format = "%m/%d/%y %H:%M %p")

comp\u report\u tz$Start\u Date\u Time进行以下更改:

  • 在小时内使用
    %I
  • 对am/pm使用
    %p
  • 确保格式模式是数据的精确模式——这不是问题所在
  • 您可能想要POSIXct,而不是POSIXlt
因此,我们使用这种格式

as.POSIXct("1/29/20 3:43pm", format = "%m/%d/%y %I:%M%p")
## [1] "2020-01-29 15:43:00 EST"

格式规范必须与要转换的字符串匹配。您的格式中“%p”之前有空格,但日期中没有相应的空格。你可能会在你的月份和小时内没有领先0的问题,尽管乍一看这些似乎没问题。您也有1-12格式的小时数(我假设,因为您有“pm”),但格式为1-23格式。请按照标记页顶部的说明进行操作,特别是确保定义了所有变量。请使用
dput
进行此操作。感谢您在%p之前的空白处进行的捕获。不幸的是,使用striptime,我仍然有问题。正如POSIXct所做的那样。