用字母更改日期格式

时间:2017-08-05 04:43:30

标签: r date time format

我有日期和时间列。主要问题是csv文件中的年份(2016)未完成且OCT不是数字。

Date        Time         rtime
20-Oct-16 14:02:00       20-Oct-16 14:02:00
20-Oct-16 14:02:03       20-Oct-16 14:02:03

我想要另一个名为newtime的列,格式为

newtime
2016-10-20 14:02:00
2016-10-20 14:02:03 

有关如何以常规数字格式制作月份并将2016年纳入2016年的任何建议。

3 个答案:

答案 0 :(得分:2)

使用lubridate,您无需指定月份是否带有名称(十月)或十进制数字(10)或年份是2016或16.Lubridate函数解析异构日期时间格式。例如:

library(lubridate)
df$newtime = dmy_hms(df$rtime) 

       Date     Time              rtime             newtime
1 20-Oct-16 14:02:00 20-Oct-16 14:02:00 2016-10-20 14:02:00
2 20-Oct-16 14:02:03 20-Oct-16 14:02:03 2016-10-20 14:02:03

如果您使用strptime,则需要定义格式。看?strptime。

答案 1 :(得分:1)

我们可以使用strptime

strptime("20-Oct-16 14:02:00", "%d-%b-%y %H:%M:%S")

dmy_hms来自lubridate

lubridate::dmy_hms("20-Oct-16 14:02:00")

答案 2 :(得分:1)

我们也可以将as.POSIXctformat

一起使用
as.POSIXct("20-Oct-16 14:02:00", format = "%d-%b-%y %H:%M:%S")
#[1] "2016-10-20 14:02:00 IST"