我在解析字符串到日期时遇到了一些问题。
这就是我正在做的事情
strftime("28/10/2014 09:05:55 p.m.", format='%d/%m/%Y %I:%M:%S %p')
##[1] "20/10/28 12:00:00 "
正如你所看到的,这里发生了三件令人不快的事情:
12:00:00
因此,具体问题是:如何正确地将此字符串解析为日期时间?
答案 0 :(得分:6)
(1)尝试strptime
而不是strftime
;我不确定strftime
是做什么的,但也许不是你的想法。
(2)我不认为" p.m。"会工作的;你可能需要一些明智的gsub("p.m.","PM",...)
使用。
strptime("28/10/2014 09:05:55 PM", format='%d/%m/%Y %I:%M:%S %p')
## [1] "2014-10-28 21:05:55 EDT"
strptime("28/10/2014 09:05:55 p.m.", format='%d/%m/%Y %I:%M:%S %p')
## NA
答案 1 :(得分:3)
我认为您需要首先将p.m.
更改为PM
(以及使用适合输入处理的strptime:
> strptime(sub("p\\.m\\.", "PM", "28/10/2014 09:05:55 p.m."), format='%d/%m/%Y %I:%M:%S %p')
[1] "2014-10-28 21:05:55 PDT"
当然,您也可能需要将a.m.
转换为AM
。