2017-07-17 28 views
1

我有存储作为因素,如在数据帧中的一列的下方的日期格式:非常时期格式

2017-02-19T21:10:18.664+00:00 
2017-03-10T21:40:50.398+00:00 

示例数据:

head(dataset$local_end_datetime) 
[1] 2017-02-19T21:10:18.664+00:00 2017-02-19T21:10:38.418+00:00 
[3] 2017-03-10T21:40:50.398+00:00 2017-03-11T16:41:43.339+00:00 
[5] 2017-03-10T21:43:31.092+00:00 2017-03-10T21:34:36.065+00:00 

我需要日期和时间相同。我可以找到使用以下提取日期:

dataset$Date <- as.Date(dataset$local_end_datetime) 

如何从上面的格式中提取时间?我不知道正则表达式。

+2

'lubridate :: ymd_hms( “2017-02-19T21:10:18.664 + 00:00”)' –

+0

这些是[组合日期和时间表示(https://en.wikipedia.org/ wiki/ISO_8601),包括一个时区偏移量('+00:00',在这种情况下,意思是“与UTC的差异为零小时”),因此没有什么不寻常的。 – 2017-07-17 16:47:21

+0

@Hugo在结构上是不寻常的,我没有遇到过这个,也找不到任何方法去解决它。非常感谢指针。 –

回答

1
Library Lubridate is quite powerful when it comes to manipulating dates 

dataset$datetime <- lubridate::ymd_hms(dataset$local_end_datetime) 
dataset$Local_Date <- as.Date(dataset$datetime) 
dataset$Local_Time <- format(dataset$datetime,"%H:%M:%S")