如何将以下字符串转换为R中的日期时间?

时间:2016-01-13 07:32:01

标签: r posixct as.date

我有以下包含日期/时间的字符向量。我想将它们转换为日期格式,我尝试了以下方法:as.Date()as.POSIXct()

time <- c("Oct 01,2015 15:38:31 ", "Oct 05,2015 11:07:14", "Oct 11,2015 14:15:51 ", "Oct 11,2015 14:19:53 ", "Oct 12,2015 11:23:28", "Oct 19,2015 16:32:51 ")

    #as.Date() is skipping the time part
time_1<-as.Date(time,"%b %d,%Y %H:%M:%S")
time_1
  [1] "2015-10-01" "2015-10-05" "2015-10-11" "2015-10-11" "2015-10-12" "2015-10-19"


#POSIXct is showing an error
time_2<-as.POSIXlt(time,"%b %d,%Y %H:%M:%S")

as.Date()函数正在跳过时间部分而POSIX正在抛出错误(很明显)。

如何将上述字符串转换为正确的日期+时间格式?

1 个答案:

答案 0 :(得分:2)

我们可以在formatas.POSIXlt

中指定as.POSIXct
 as.POSIXlt(time,format="%b %d,%Y %H:%M:%S")
 #[1] "2015-10-01 15:38:31 IST" "2015-10-05 11:07:14 IST"
 #[3] "2015-10-11 14:15:51 IST" "2015-10-11 14:19:53 IST"
 #[5] "2015-10-12 11:23:28 IST" "2015-10-19 16:32:51 IST"

在未指定format的情况下,该函数会将"%b %d,%Y %H:%M:%S"作为时区(tz)进行猜测。根据{{​​1}}

中的默认公式,第二个参数为tz
?as.POSIXct