以秒和毫秒之间的日期格式冒号。如何解析R?

时间:2012-11-28 20:17:18

标签: r datetime time-series milliseconds strptime

如何解析此日期格式?我应该将这个冒号改成点还是有人知道更好的解决方案?

> x <- "2012.01.15 09:00:02:002"
> strptime(x, "%Y.%m.%d %H:%M:%S:%OS") 
[1] "2012-01-15 09:00:02"
> strptime(x, "%Y.%m.%d %H:%M:%OS")
[1] "2012-01-15 09:00:02"
> x <- "2012.01.15 09:00:02.002"
> strptime(x, "%Y.%m.%d %H:%M:%OS")
[1] "2012-01-15 09:00:02.001"

2 个答案:

答案 0 :(得分:8)

这里有一个微妙的区别,可能会让你失望。 正如?strptime所述:

  

对于'strptime''%OS'将输入秒数,包括小数秒。

要强调一点,%OS表示秒包括小数秒 - 不仅仅是秒的小数部分:如果是秒值是44.234,%OS%OS3代表 44.234 ,而非 .234

因此解决方案确实是用.代替最终的:

这是你可以做到的一种方式:

x <- "2012.01.15 09:00:02:002"
strptime(gsub(":", ".", x), "%Y.%m.%d %H.%M.%OS") 

答案 1 :(得分:2)

strptime(gsub(":", ".", x), "%Y.%m.%d %H.%M.%OS3")
是作弊?