我的data.frame
字符串与"7/30/2009 9:18:35.000000 PM"
类似。格式有点不寻常,因为它是从数据库转储中提取的。
我正在尝试使用as.POSIXct
转换这些字符串。从strptime
中的文档中,我相信format = "%m/%d/%Y %H:%M:%OS %p"
- %OS
可以捕获小数秒,%p
来捕获一天中的时间:
as.POSIXct("7/30/2009 9:18:35.000000 PM", format = "%m/%d/%Y %H:%M:%OS %p")
[1] "2009-07-30 09:18:35 EDT"
我希望这会返回"2009-07-30 21:18:35 EDT"
。
看起来秒字段中的尾随零或AM / PM指示符都会导致问题。
有什么想法吗?
以下是一些示例数据:
v <- c("7/31/2009 7:35:38.000000 AM", "7/30/2009 9:18:35.000000 PM",
"7/30/2009 9:18:30.000000 PM", "7/30/2009 9:18:40.000000 PM",
"7/30/2009 9:18:39.000000 PM", "7/30/2009 9:19:29.000000 PM",
"7/30/2009 9:18:42.000000 PM", "7/30/2009 9:18:45.000000 PM",
"7/31/2009 7:35:31.000000 AM", "7/31/2009 7:35:30.000000 AM")
答案 0 :(得分:2)
strptime(&#34; 7/30/2009 9:18:35.00000 PM&#34;,&#34;%m /%d /%Y%I:%M:%S%p&#34; < / p>
答案 1 :(得分:1)
您可能需要%I
从文件中
%I - 十进制小时数(01-12)。
和
%H - 小时为十进制数(00-23)。
as.POSIXct("7/30/2009 9:18:35.000000 PM", format = "%m/%d/%Y %I:%M:%OS %p")
# [1] "2009-07-30 21:18:35 IST"