首页 > 解决方案 > 如何转换时间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"

它的日、月、年、时、分。我想把它转换成可读的时间。我已经试过了:

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

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

标签: rdatetime

解决方案


阅读?strptime你需要format

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

如果您需要输出为我们可以使用的特定格式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"

同样适用as.POSIXct

as.POSIXct("01.01.2017 01:00", format="%d.%m.%Y  %H:%M")

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

lubridate::dmy_hm("01.01.2017 01:00")

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


推荐阅读