如何转换时间R的格式?

Ess*_*ssi 1 datetime r

我有一个时间格式如下的数据框:

Time
01.01.2017 01:00
01.01.2017 02:00
01.01.2017 03:00
01.01.2017 04:00 
01.01.2017 05:00 
01.01.2017 06:00

class(df$Time) 
[1] "factor"
Run Code Online (Sandbox Code Playgroud)

它的日,月,年,小时,分钟。我想将其转换为可读时间。我已经尝试过了:

strptime(df$Time, format="%d-%m-%Y  %H:%M")
as.POSIXct(df$Time)
Run Code Online (Sandbox Code Playgroud)

它不起作用。如何将其转换并将格式更改为:2017-01-01 01:00。所以我要有年,月,日,小时,分钟。

Ron*_*hah 5

阅读?strptime您需要format成为

strptime("01.01.2017 01:00", format="%d.%m.%Y  %H:%M")
#[1] "2017-01-01 01:00:00"
Run Code Online (Sandbox Code Playgroud)

如果您需要采用特定格式的输出,我们可以使用 format

format(strptime("01.01.2017 01:00", format="%d.%m.%Y  %H:%M"), "%Y-%m-%d  %H:%M")
#[1] "2017-01-01  01:00"
Run Code Online (Sandbox Code Playgroud)

同样可以使用 as.POSIXct

as.POSIXct("01.01.2017 01:00", format="%d.%m.%Y  %H:%M")
Run Code Online (Sandbox Code Playgroud)

或者忽略指定格式直接使用 lubridate::dmy_hm

lubridate::dmy_hm("01.01.2017 01:00")
Run Code Online (Sandbox Code Playgroud)

@ 42-提到的一件事要注意的是,尽管它们的输出看起来是相同的,但是format是一个字符值,而as.POSIXctand 的输出strptime是一个日期时间值。