【问题标题】:change all datetimes to 2PM and keep the dates same将所有日期时间更改为下午 2 点并保持日期相同
【发布时间】:2021-08-26 03:32:21
【问题描述】:

我有 datetime 对象,我想将所有时间更改为下午 2 点并保持日期不变。

我使用 floor_date 获取相应日期的开始,然后添加 14 小时的时间段以获取下午 2 点。

有时,结果只显示日期而不显示时间。有时它会同时显示日期和时间。

有没有其他方法可以做到这一点

library(lubridate)

t1 <- floor_date(Sys.time(), unit = "day") + hours(14)

t2 <- floor_date(ymd_hms("2021-08-25 10:36:00"), unit = "day") + hours(14)

【问题讨论】:

  • 只是出于好奇,您能否在该方法不起作用时添加一个示例,如您的 OP 中所述?
  • 我有一个日期时间对象,我想将时间更改为下午 2 点。使用我的技术,我只得到了日期作为回报。我不知道我怎么能在这里添加一个例子。

标签: r datetime lubridate


【解决方案1】:

您可以将时间部分替换为小时。这是一个执行此操作的函数。

change_time_to_x <- function(time, x) {
  as.POSIXct(sub('\\s.*', x, time), tz = 'UTC')  
}

input <- lubridate::ymd_hms(Sys.time(), "2021-08-25 10:36:00", "2012-12-31 00:00:00")
change_time_to_x(input, '14:00:00')
#[1] "2021-08-26 14:00:00 UTC" "2021-08-25 14:00:00 UTC" "2012-12-31 14:00:00 UTC"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 2017-04-18
    相关资源
    最近更新 更多