R: convert date from character to datetime [duplicate]

梦想的初衷 提交于 2021-01-15 19:11:53

问题


I have df$date as character type below:

     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"

I want to convert it to datetime object and tried as.Date(df$date) and the output is

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

I also tried as.POSIXlt(df$date) and the output is

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

What I am looking for is

     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

I also tried the following from the help

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

The output is NA

How do I get the desired output?


回答1:


For me it works like this:

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"

The code is form here: converting datetime string to POSIXct date/time format in R




回答2:


Another solution would be using the lubridate package.

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

You can use the ymd_hms function and don't have to worry about the formats in this case.

ymd_hms(test)

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

You can change the timezone using the tz parameter.

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


来源:https://stackoverflow.com/questions/41165867/r-convert-date-from-character-to-datetime

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!