将POSIXct日期舍入到第二天

时间:2012-08-09 17:43:14

标签: r posixct

我有一个类似于Round a POSIX date (POSIXct) with base R functionality的问题,但我希望总是把日期延长到第二天午夜(00:00:00)。

基本上,对于POSIX格式的日期,我想要一个等效于ceiling的函数。与相关问题一样,我正在编写自己的包,并且我已经有几个包依赖项,所以我不想添加更多。在基础R中有一种简单的方法吗?

2 个答案:

答案 0 :(得分:8)

也许

trunc(x,"days") + 60*60*24

> x <- as.POSIXct(Sys.time())
> x
[1] "2012-08-09 18:40:08 BST"
> trunc(x,"days")+ 60*60*24
[1] "2012-08-10 BST"

答案 1 :(得分:0)

快速而肮脏的方法是转换为Date(截断时间),添加1(这是Date的一天),然后转换回POSIX在第二天的午夜UTC。正如@Joshua Ulrich指出的那样,时区/夏令时问题可能会给您带来预期的结果:

as.POSIXct(as.Date(Sys.time())+1)
[1] "2012-08-10 01:00:00 BST"