r语言 - 从午夜到一天时间的秒数



有一个帖子展示了如何使用lubridate从午夜开始从时间到秒。从午夜开始的几秒到一天中的某个时刻怎么样?

所以,不是用06:52:32得到24752.05,我怎么用24752.05得到06:52:32呢?

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

在我的默认时区:

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

请注意,答案(就像前面的问题一样)可以在基数R中很好地解决,尽管有传言说每次问题都必须涉及润滑剂

另一个选项:

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

使用lubridate只是为了多样化:

library(lubridate)
Sys.time() + seconds(24752.05)

或从午夜开始:

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

当然,你也可以直接计算小时、分和秒。这是基于POSIX时间的定义。Midnight总是有一个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"

最新更新