我在 R 下工作,我有一个日期(格式“2018-08-10”)和时间(格式“10:00:00”)。两者都是字符串。我需要计算事件的开始时间(时间 - 60 分钟)并将其传递为以下格式: 20180810T090000Z 年月日T小时分秒。
我尝试了以下方法:
time <- "10:00:00"
J0 <- "2018-08-10"
library(lubridate)
beginningtime = as.character(hms(time) - minutes(60))
datestart = as.character.POSIXt(as.POSIXct(paste(J0, beginningtime)),
format = "%Y%m%dT%H%M%S")
这给了我以下格式的
datestart
:“20240301T000000”,不考虑时间。
我猜这与
as.POSIXct(paste(J0, beginningtime))
的输出有关,它返回:“2024-03-01 CET”,没有开始时间。
有人知道该怎么做吗?我是 POSIX 对象的新手,并且不知道如何组合
as.POSIX
函数的所有变体以获得正确的输出。
使用
lubridate
您可以 paste
和 J0
对象,然后使用 time
将其从字符转换为日期。然后,您可以减去 60 分钟并将结果设置为您想要的输出格式(使用 ymd_hms
)。stamp