当年份为 '20 格式时,如何从字符更改为日期/时间?

问题描述

我的数据框中有一列类为 character,但我想将其转换为 date/time。日期格式如下,month-day-year hour:minute:second AM/PM。我已经尝试过 as.dateas.POSIXct 之类的东西,但我认为我的年份有问题,因为年份不是 2020,而是 20,因此格式看起来像06-25-20 08:00:00AM。这是一个示例数据框

# Create a,b,c,d variables
a <- c("06-25-20 08:00:00 AM","06-25-20 08:15:00 AM","06-25-20 08:30:00 AM","06-25-20 08:45:00 AM")
b <- c('book','pen','textbook','pencil_case')
c <- c(2.5,8,10,7)
# Join the variables to create a data frame
df <- data.frame(a,c)

使用下面的代码,整列变成N/A

df$a = as.Date(df$a,'%d-%m-%y %H:%M:%s')

使用下面的代码我得到一个错误

Error in as.POSIXlt.character(x,tz,...) : 
  character string is not in a standard unambiguous format
In addition: There were 12 warnings (use warnings() to see them)
df$a = as.POSIXct(df$a,"%m-%d-%y %H:%M:%s")

解决方法

我需要确定格式, df$a = as.POSIXlt(df$a,format="%m-%d-%y%H:%M:%S",tz = 'EST')