将POSIXct日期舍入到第二天
问题描述:
我有一个类似于Round a POSIX date (POSIXct) with base R functionality的问题,但是我希望能够在第二天(00:00:00)的午夜时间总是将日期整数化。将POSIXct日期舍入到第二天
基本上,我想要一个相当于POSIX格式日期的ceiling
的函数。与相关问题一样,我正在编写我自己的软件包,而且我已经有了几个软件包依赖关系,因此我不想添加更多。有没有一种简单的方法来做到这一点在基地R?
答
也许
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"
答
一个快速和肮脏的方法是转换为Date
(这截断时间),加1(这是Date
日)再转换回POSIX
是在午夜UTC在第二天。正如@Joshua Ulrich指出的那样,时区/夏令时问题可能会给您带来不希望的结果:
as.POSIXct(as.Date(Sys.time())+1)
[1] "2012-08-10 01:00:00 BST"
您将遇到时区和夏令时问题。如果你不需要时间组件,只需使用'Date'。 – 2012-08-09 17:52:41
我在网上刮了POSIXct风格的时间戳,我试着将它们轮到第二天。我不知道'Date'格式是否适用于... – 2012-08-09 18:08:40
所以,你有POSIXct风格的字符串...你不能只从字符串中去掉时间部分,转换成'Date'并添加1结果? – 2012-08-09 18:11:03