r检查Sys.time()是否在一天的指定时间间隔内

问题描述 投票:1回答:1

我正在这里寻找一种使用lubridate(类似的东西)的,可能不太hacky的解决方案。

用例:我想检查Sys.time()是否在给定的小时间隔之间,结果比我认为b / ca datetime似乎总是复杂一些需要一个日期,例如paste("01-01-01", "9:00 AM")

所以这是我检查Sys.time()是否在工作时间之间所做的工作。我正在提取小时数的数值并进行比较,这对我来说似乎很不客气:)

as.numeric(format(lubridate::as_datetime(Sys.time(), tz = "America/New_York"), format = "%H")) >= as.numeric(format(ymd_hm(paste("01-01-01", "9:00 AM"), tz = "America/New_York"), format = "%H")) &

as.numeric(format(lubridate::as_datetime(Sys.time(), tz = "America/New_York"), format = "%H")) < as.numeric(format(ymd_hm(paste("01-01-01", "6:00 PM"), tz = "America/New_York"), format = "%H"))

这有效并根据设置的参数返回TRUEFALSE。再次,我正在寻找一种针对这种怪异现象的更优雅的解决方案,或者这可能会帮助正在寻找这种怪物的人。

欢迎任何反馈!

r datetime lubridate
1个回答
1
投票

您可以使用hour。 LHS和RHS上的相同tz=互相抵消。

hour(Sys.time()) %in% 9:18 
# [1] FALSE
© www.soinside.com 2019 - 2024. All rights reserved.