从午夜到一天的时间

时间:2013-01-16 22:27:36

标签: r time lubridate

有一篇帖子展示了自午夜以来如何使用lubridate从时间到秒。从午夜到一天的几秒钟怎么样?

所以,如何使用06:52:32获取24752.05,如何使用24752.05获取06:52:32?

4 个答案:

答案 0 :(得分:7)

对午夜时间戳和偏移量之和使用as.POSIXct(),可以通过设置TZ进行调整。

在我的默认时区:

R> as.POSIXct(trunc(Sys.time(), units="days") + 24752.05)
[1] "2013-01-16 06:52:32.04 CST"
R> 

请注意,答案(就像前面的问题一样)可以在基础R中得到很好的解决,持续的谣言说每次问题都必须涉及到不能承受的问题。

答案 1 :(得分:3)

仅使用lubridate种类:

library(lubridate)

Sys.time() + seconds(24752.05)

或从午夜开始:

as.Date(Sys.time()) + seconds(24752.05)

答案 2 :(得分:3)

另一种选择:

format(as.POSIXct('1900-1-1') + 24752.05, '%H:%M:%S')
# [1] "6:52:32"

答案 3 :(得分:3)

当然,您可以直接计算小时,分钟和秒。这是基于POSIX时间的定义。午夜总是有time_t值,可以被86400整除。

x <- 24752.05

paste(sprintf("%02d", floor(x / 3600)),
      sprintf("%02d", floor(x %% 3600 / 60)),
      sprintf("%02d", floor(x %% 60 )),
      sep=":"
)
## [1] "06:52:32"