【发布时间】:2016-05-17 06:08:10
【问题描述】:
我在格式化日期和时间时遇到了毫秒问题。
说明: csv 中的日期格式分别作为日期、时间和毫秒分布在前 3 列 2014/12/22,14:48:51,800 中。 所以,我基本上将它们合并为 1。在这里,为了说明,我取了数据框的 1 行
temp
#[1] "2014/12/22" "14:48:51" "800"
temp <- gsub("/","-",paste(temp[1],paste(temp[2],temp[3],sep="."),sep=" "))
#[1] "2014-12-22 14:48:51.800"
然后,设置选项
op <- options(digits.secs = 3)
options(op)
Date_time <- as.POSIXlt(strptime(temp, format="%Y-%m-%d %H:%M:%OS"))
#[1] "2014-12-22 14:48:51.8 IST"
上面的输出会给我 "2014-12-22 15:10:41.8 IST" 。 但是,对于 8 毫秒和 80 毫秒,它也会给出相同的输出“2014-12-22 15:10:41.8 IST”
另外,如果我使用 format="%Y-%m-%d %H:%M:%OS3" 我会得到 NA。
【问题讨论】:
-
感谢 Akrun 的及时回复!。使用 sprintf 80 毫秒,我得到 "2014-12-22 14:48:51.008 IST" 和 800 "2014-12-22 14:48:51.08 IST" 。我想我们需要更多的修改。回复第一条评论:80 毫秒 csv 中的 3 列是“2014/12/22,14:48:51,080”
-
预期输出:需要 Posix 时间,理想情况下是“2014-12-22 14:48:51.008”8 毫秒“2014-12-22 14:48:51.080”80 和“ 2014-12-22 14:48:51.800" 为 800
-
我发表了我的评论作为解决方案。它给出了你展示的内容。