lubridate:明天具体时间?
lubridate: tomorrow at specific time?
我需要创建一个代表明天早上 6 点(当地时间)的 POSIXt 对象。
我想到的最好的 lubridate
表达式是这样的:
lubridate::floor_date(lubridate::now() + lubridate::days(1), "day") + lubridate::hours(6))
这感觉有点笨拙 ("now + 1 day -> truncate to the nearest day -> + 6 hours")。
有更好的方法吗?
你可以
Sys.Date() + 1 + lubridate::hours(6)
#[1] "2020-01-08 06:00:00 UTC"
这在我的时区 (CET) 对我有用:
library(lubridate)
ceiling_date(now(), "day") + hours(6)
floor_date(now(), "day") + hours(30)
两者都return
[1] "2020-01-08 06:00:00 CET"
编辑:这也有效:
library(lubridate)
`tz<-`(today() + hours(30), "")
`tz<-`(Sys.Date() + hours(30), "")
两者都 return(在我当地的时区)
[1] "2020-01-08 06:00:00 CET"
(解释如下)
附录
有趣的是, using Sys.Date()
as well as 使用 lubridate::today()
将时区切换为 UTC:
Sys.Date() + 1 + lubridate::hours(6)
[1] "2020-01-08 06:00:00 UTC"
library(lubridate)
today() + hours(30)
[1] "2020-01-08 06:00:00 UTC"
不符合OP当地时间.
的要求
显然,这在从 Date
强制到 POSIXct
class:
时偷偷摸摸
lubridate::hours()
return 一个 Period
对象。将 Period
对象添加到 Date
对象时,似乎 lubridate::as_datetime()
被用于强制转换。 as_datetime()
使用 "UTC"
作为默认时区。之后可以设置时区,例如,
`tz<-`(today() + hours(30), "")
我需要创建一个代表明天早上 6 点(当地时间)的 POSIXt 对象。
我想到的最好的 lubridate
表达式是这样的:
lubridate::floor_date(lubridate::now() + lubridate::days(1), "day") + lubridate::hours(6))
这感觉有点笨拙 ("now + 1 day -> truncate to the nearest day -> + 6 hours")。 有更好的方法吗?
你可以
Sys.Date() + 1 + lubridate::hours(6)
#[1] "2020-01-08 06:00:00 UTC"
这在我的时区 (CET) 对我有用:
library(lubridate)
ceiling_date(now(), "day") + hours(6)
floor_date(now(), "day") + hours(30)
两者都return
[1] "2020-01-08 06:00:00 CET"
编辑:这也有效:
library(lubridate)
`tz<-`(today() + hours(30), "")
`tz<-`(Sys.Date() + hours(30), "")
两者都 return(在我当地的时区)
[1] "2020-01-08 06:00:00 CET"
(解释如下)
附录
有趣的是,Sys.Date()
as well as lubridate::today()
将时区切换为 UTC:
Sys.Date() + 1 + lubridate::hours(6)
[1] "2020-01-08 06:00:00 UTC"
library(lubridate)
today() + hours(30)
[1] "2020-01-08 06:00:00 UTC"
不符合OP当地时间.
的要求显然,这在从 Date
强制到 POSIXct
class:
lubridate::hours()
return 一个 Period
对象。将 Period
对象添加到 Date
对象时,似乎 lubridate::as_datetime()
被用于强制转换。 as_datetime()
使用 "UTC"
作为默认时区。之后可以设置时区,例如,
`tz<-`(today() + hours(30), "")