【发布时间】:2011-12-14 14:10:18
【问题描述】:
我有一个格式化时间戳的文件,例如25/03/2011 9:15:00 p.m.
如何使用strptime 或as.POSIXct 将此文本解析为日期时间类?
这几乎是可行的:
> as.POSIXct("25/03/2011 9:15:00", format="%d/%m/%Y %I:%M:%S", tz="UTC")
[1] "2011-03-25 09:15:00 UTC"
这是不工作的,但我想工作:
> as.POSIXct("25/03/2011 9:15:00 p.m.", format="%d/%m/%Y %I:%M:%S %p", tz="UTC")
[1] NA
我在 MS Windows 上使用 R 版本 2.13.2 (2011-09-30)。我的工作语言环境是“C”:
Sys.setlocale("LC_TIME", "C")
【问题讨论】:
-
?strptime表示%p是“区域设置中的 AM/PM 指示符”。 stdcxx.apache.org/doc/stdlibref/time-put.html 在 C 语言环境中表示它是 AM/PM,所以我认为您必须首先使用sub("a.m","AM",...)和sub("p.m.","PM",...)。 (可能有一个巧妙的正则表达式可以一次性完成所有操作。) -
@BenBolker:我在这里得到了你的精巧正则表达式...... :)