R lubridate将秒数转换为日期

时间:2012-12-21 22:51:14

标签: r lubridate

我对R的润滑剂包有一个简单的问题。从纪元开始,我在几秒钟内就有了一系列的时间戳。我想将其转换为YYYY-MM-DD-HH格式。在基础R中,我可以做类似的事情,首先将其转换为日期格式

> x = as.POSIXct(1356129107,origin = "1970-01-01",tz = "GMT")
> x
[1] "2012-12-21 22:31:47 GMT"

请注意,上面只是将其转换为日期格式,而不是YYYY-MM-DD-HH格式。我怎么在lubridate这样做?我如何使用基数R?

非常感谢提前

3 个答案:

答案 0 :(得分:12)

德克是对的。但是,如果您打算使用lubridate函数:

paste( year(dt), month(dt), mday(dt), hour(dt) sep="-")

另一方面,如果你想按照它们应该使用的方式处理POSIXct个对象,那么这应该满足:

format(x, format="%Y-%m-%d-%H")

答案 1 :(得分:10)

lubridate 有一个as_datetime()恰好有UNIX纪元时间作为默认的 origin 时间,这使得这非常简单:

> as_datetime(1356129107)
[1] "2012-12-21 22:31:47 UTC"

可在此处找到更多详细信息:https://rdrr.io/cran/lubridate/man/as_date.html

答案 2 :(得分:0)

我使用@leerssej提供的润滑溶液

但是,如果有人在基数R中更喜欢@IRTFM的解决方案,但是也想要几分钟和几秒钟,下面是一个示例:

import { Text } from 'slate';