将格式为“09:12 AM - Mon Oct-10-2016”的字符串转换为日期

时间:2016-10-17 07:21:13

标签: r date parsing

我在MacOS上。我很难解析如下所示的日期字符串:

"09:12 AM - Mon Oct-10-2016"

我尝试生成这样的格式:

Sys.setlocale("LC_TIME", 'en_US.UTF-8')   # set locale to EN
f <- "%I:%M %p - %a %b-%m-%Y"             # define format
z <- format(Sys.time(), format=f)         # get example
z
> "09:12 AM - Mon Oct-10-2016"

并解析它,但它不起作用。

> strftime(z, format = f)
Error in as.POSIXlt.character(x, tz = tz) : 
  character string is not in a standard unambiguous format
> strptime(z, format = f)
[1] NA

如何解析具有所述格式的字符串?

2 个答案:

答案 0 :(得分:3)

Sys.setlocale("LC_TIME", 'C')
f <- "%I:%M %p - %a %b-%d-%Y"
strptime("09:12 AM - Mon Oct-10-2016", format = f, tz = "GMT")
#[1] "2016-10-10 09:12:00 GMT"

10不是月份而是一天。

答案 1 :(得分:1)

你也可以试试&#39; lubridate&#39;:

require(lubridate)
> parse_date_time("09:12 AM - Mon Oct-10-2016", "HMmdY")
[1] "2016-10-10 09:12:00 UTC"