Strptime无法转换日期和时间

时间:2014-05-11 04:26:20

标签: r

我尝试格式化日期会导致NA NA。日期和时间都没有转换。我做错了什么?

    x <- strptime(c("2013-12-12", "08:43:24.967"),"%Y-%m-%d %H:%M:%OS")

2 个答案:

答案 0 :(得分:3)

使用您提供的格式字符串,strptime需要一个日期时间字符串向量。您有一个包含日期和时间的向量作为单独的向量元素。这是不正确的。

您需要传递c("2013-12-12", "08:43:24.967")(一个元素,日期时间),而不是传递"2013-12-12 08:43:24.967"(两个元素,日期和时间)。

您拥有的数据可以使用paste

的正确格式
strptime(paste("2013-12-12", "08:43:24.967"),format="%Y-%m-%d %H:%M:%OS")
[1] "2013-12-12 08:43:24"

上面没有打印小数秒,因为默认情况下不打印它们。但表达式会捕获它们(使用默认的options(digits.secs=NULL))。它们将打印出适当的格式字符串以进行输出,或打印要打印的数字的指定(例如options(digits.secs=3)

答案 1 :(得分:0)

您需要将日期字符串作为第一个参数传递给strptime函数,然后按日期格式。您似乎在日期格式字符串中输入了0,请删除日期字符串中的毫秒部分。

您可以使用以下语句:

strptime(&#34; 2013-12-12 08:43:24&#34;,&#34;%Y-%m-%d%H:%M:%S&#34;)