4

我有一个类似于Round a POSIX date (POSIXct) with base R functionality的问题,但我希望始终将日期四舍五入到第二天午夜(00:00:00)。

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

4

2 回答 2

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"
于 2012-08-09T17:55:27.357 回答
0

一种快速而肮脏的方法是转换为 a Date(截断时间),加 1(表示 的一天Date),然后转换回POSIX第二天的午夜 UTC。正如@Joshua Ulrich 指出的那样,时区/夏令时问题可能会产生您意想不到的结果:

as.POSIXct(as.Date(Sys.time())+1)
[1] "2012-08-10 01:00:00 BST"
于 2012-08-09T18:00:34.337 回答