如何在R中将具有3位数毫秒的因子转换为日期时间?

时间:2016-10-27 16:16:26

标签: r

我计时这样的对象:

t<-c("2016-10-19 00:00:00.000")

我需要转换为POSIXct:

as.POSIXct(t, format="%Y-%m-%d %H:%M:%OS")

"2016-10-19 EDT"

我放松了小时,分钟和秒钟。我在这里做错了什么想法?

我需要这个

2016-10-19  00:00:00

3 个答案:

答案 0 :(得分:5)

你没有丢失它们,这只是小时,分钟和秒为零的默认值。您可以指定格式字符串以强制打印这些字符串:

> ct <- as.POSIXct(t, format="%Y-%m-%d %H:%M:%OS")
> format(ct, "%Y-%m-%d %H:%M:%S")
[1] "2016-10-19 00:00:00"

答案 1 :(得分:1)

新的且易于使用的软件包anytime是另一种选择:

library(anytime) 
anydate(t$Datetime)

答案 2 :(得分:0)

您也可以使用lubridate

library(lubridate)
t<-c("2016-10-19 00:00:00.000")
ymd_hms(t)
#> [1] "2016-10-19 UTC"