如何将天数添加到 R 中的 POSIXct 对象
How to add days to a POSIXct object in R
我想将特定日期添加到 POSIXct 对象。我尝试了下面的方法
library(lubridate)
input_time = as.POSIXct("2018-05-05T14:14:05")
input_time + lubridate::days(1)
这给出了没有小时和秒 (14:14:05) 的输出“2018-05-06 UTC”。我希望它的格式与 input_time (2018-05-06T14:14:05) 相同。如何保留小时和秒信息
as.POSIXct
未测试您的时间格式。这就是你得到这个结果的原因。
您可以使用以下格式来获得正确的:
library(lubridate)
# note the format option to get it correct
input_time = as.POSIXct("2018-05-05T14:14:05", format = "%Y-%m-%dT%H:%M:%OS")
input_time + lubridate::days(1)
[1] "2018-05-06 14:14:05 UTC"
或者只使用 lubridate 中的所有函数:
input_time <- lubridate::ymd_hms("2018-05-05T14:14:05")
input_time + lubridate::days(1)
[1] "2018-05-06 14:14:05 UTC"
只需正确格式化并加上一天中的秒数即可。
as.POSIXct("2018-05-05T14:14:05", format="%Y-%m-%dT%T") + 1*60*60*24
# [1] "2018-05-06 14:14:05 CEST"
我会尝试使用 as.POSIXlt 而不是 as.POSIXct。
POSIXlt 将 data/time 存储为元素列表:
new_date<-input_time
new_date$mday<-input_time$mday+1
new_date
如下所示格式化 input_time 并添加时区(例如 GMT):
input_time = as.POSIXlt("2018-05-05T14:14:05", format='%Y-%m-%dT %H:%M:%S', tz="GMT")
我想将特定日期添加到 POSIXct 对象。我尝试了下面的方法
library(lubridate)
input_time = as.POSIXct("2018-05-05T14:14:05")
input_time + lubridate::days(1)
这给出了没有小时和秒 (14:14:05) 的输出“2018-05-06 UTC”。我希望它的格式与 input_time (2018-05-06T14:14:05) 相同。如何保留小时和秒信息
as.POSIXct
未测试您的时间格式。这就是你得到这个结果的原因。
您可以使用以下格式来获得正确的:
library(lubridate)
# note the format option to get it correct
input_time = as.POSIXct("2018-05-05T14:14:05", format = "%Y-%m-%dT%H:%M:%OS")
input_time + lubridate::days(1)
[1] "2018-05-06 14:14:05 UTC"
或者只使用 lubridate 中的所有函数:
input_time <- lubridate::ymd_hms("2018-05-05T14:14:05")
input_time + lubridate::days(1)
[1] "2018-05-06 14:14:05 UTC"
只需正确格式化并加上一天中的秒数即可。
as.POSIXct("2018-05-05T14:14:05", format="%Y-%m-%dT%T") + 1*60*60*24
# [1] "2018-05-06 14:14:05 CEST"
我会尝试使用 as.POSIXlt 而不是 as.POSIXct。 POSIXlt 将 data/time 存储为元素列表:
new_date<-input_time
new_date$mday<-input_time$mday+1
new_date
如下所示格式化 input_time 并添加时区(例如 GMT):
input_time = as.POSIXlt("2018-05-05T14:14:05", format='%Y-%m-%dT %H:%M:%S', tz="GMT")