Добавить день в строку даты и времени - PullRequest
1 голос
/ 14 мая 2019

Я бы хотел перевести строку даты и времени в R на один день, сохранив время.

datetime<-"2015-07-20T16:33:59.158Z"

as.Date(datetime)+1
as.POSIXct(datetime)+24*60*60

library(lubridate)
as.POSIXct(datetime)+days(1)
as.POSIXct(datetime)+hours(24)

Все возвращают либо

 "2015-07-21"
 "2015-07-21 BST"

когда требуется

"2015-07-21T16:33:59.158Z"

Спасибо.

Ответы [ 3 ]

3 голосов
/ 14 мая 2019

Проверьте вывод для

as.POSIXct(datetime)
#[1] "2015-07-20"

, оно усекает временную составляющую.Вам необходимо указать правильное значение format, поскольку оно не в стандартном формате.

as.POSIXct(datetime, format = "%Y-%m-%dT%H:%M:%OS")
#[1] "2015-07-20 16:33:59

После того, как вы это сделаете, вы можете сделать

as.POSIXct(datetime, format = "%Y-%m-%dT%H:%M:%OS") + 24*60*60
#[1] "2015-07-21 16:33:59"
3 голосов
/ 14 мая 2019

Вы можете сделать, как показано ниже:

library(lubridate)
datetime <- ymd_hms("2015-07-20T16:33:59.158Z")
datetime + 24*60*60
[1] "2015-07-21 16:33:59 UTC"
1 голос
/ 14 мая 2019

Мы можем использовать anytime

library(anytime)
anytime(datetime) + 24 * 60 * 60
#[1] "2015-07-21 16:33:59 EDT"
...