2016-12-15 115 views
1

我有df$date如下字符类型:R:从字符转换日期为datetime

 date 
1 "2016-04-10T12:21:25.4278624" 
2 "2016-04-12T10:01:42.9573987" 
3 "2016-04-12T10:02:15.2168753" 
4 "2016-04-12T10:02:45.3005686" 

我想将其转换为datetime对象,并试图as.Date(df$date)并且输出是

​​

我还尝试as.POSIXlt(df$date)和输出是

"2016-04-10 BST" 
"2016-04-12 BST" 
"2016-04-12 BST" 
"2016-04-12 BST" 

W帽子我找的是

 date 
1 2016-04-10 12:21:25.4278624 
2 2016-04-12 10:01:42.9573987 
3 2016-04-12 10:02:15.2168753 
4 2016-04-12 10:02:45.3005686 

我也试图从help

as.POSIXct(strptime("2011-03-27 01:30:00", "%Y-%m-%d %H:%M:%S")) 

输出下面是NA

如何获得所需的输出?

回答

1

另一个解决方案是使用lubridate包。

library(lubridate) 
test <- "2016-04-10T12:21:25.4278624" 

您可以使用ymd_hms函数,而不必担心这种情况下的格式。

ymd_hms(test) 

#output 
[1] "2016-04-10 12:21:25 UTC" 

您可以使用tz参数更改时区。

ymd_hms(test, tz = "EST") 
[1] "2016-04-10 12:21:25 EST"