9

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

> 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"
4

2 回答 2

8

这里有一个微妙的区别可能会让你失望。如?strptime注释:

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

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

所以解决方案确实是用 a.代替 final :

这是您可以这样做的一种方法:

x <- "2012.01.15 09:00:02:002"
strptime(gsub(":", ".", x), "%Y.%m.%d %H.%M.%OS") 
于 2012-11-28T20:58:55.597 回答
2

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

作弊?

于 2012-11-28T20:58:27.257 回答