2015-07-21 6 views
1

Я искал, но я не мог узнать, как преобразовать дату из строки символов в следующем формате:Как преобразовать дату из символьной строки?

date <- "07-21-2015-09:30AM" 

Я хотел использовать as.Date, но я не удается. Все, что я получаю следующее:

as.Date(date, format="%m-%d-%y-%hAM") 
NA 

as.Date(dates, format="%m-%d-%y-%h") 
NA 
+0

Попробуйте 'as.POSIXlt()'? –

+0

Если вам нужна дата, просто выполните 'as.Date (date, format = '% m-% d-% Y') # [1]" 2015-07-21 " ' – akrun

+0

Мне тоже нужно время ... – Pop

ответ

6

Если нам нужно «дата» и «время», один вариант as.POSIXct

as.POSIXct(date, format='%m-%d-%Y-%I:%M%p') 
#[1] "2015-07-21 09:30:00 EDT" 
+1

@RHertel Он работает с 'strptime', но его проще хранить с' as.POSIXct', так как 'strptime' возвращает' POSIXlt' класс – akrun

+1

Спасибо за объяснение. – RHertel

2

Вы также можете использовать пакет lubridate так:

library('lubridate') 
date <- "07-21-2015-09:30AM" 
mdy_hm(date) 
# "2015-07-21 09:30:00 UTC" 
1

Мне нравится strptime для этого:

strptime(date, format="%m-%d-%Y-%R%p") 
#[1] "2015-07-21 09:30:00 EDT" 

И в том случае, если вам нужно было видеть дату в том же формате, что и введенный, вы можете позвонить связанным strftime. Он не изменяет внутреннюю память переменной, а изменяет только формат.

strftime(xx, format="%m-%d-%Y-%R%p") 
#[1] "07-21-2015-09:30AM" 
Смежные вопросы