R:将日期从字符转换为日期时间

时间:2016-12-15 13:53:20

标签: r datetime time-series

我的df$date字符类型如下:

     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),输出为

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

我也试过as.POSIXlt(df$date),输出是

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

我正在寻找的是

     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

如何获得所需的输出?

2 个答案:

答案 0 :(得分:3)

对我而言,它的工作原理如下:

test <- "2016-04-10T12:21:25.4278624"
z <- as.POSIXct(test,format="%Y-%m-%dT%H:%M:%OS")

#output:
z
"2016-04-10 12:21:25 CEST"

代码在此处形成:converting datetime string to POSIXct date/time format in R

答案 1 :(得分: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"