【发布时间】:2019-12-06 14:18:52
【问题描述】:
我正在处理一些与其正确时区偏移 2 小时的日期时间数据。它应该是东非时间,但我不知道它在原始数据中设置的时区。
在数据中增加 2 小时似乎很容易。然而,棘手的情况是当我在午夜附近有时间时,因为在此基础上增加几个小时会将日期放到第二天。
这就是我所拥有的:
df <- c ("09/11/2015 16:00", # 9th November 2015
"09/11/2015 17:00",
"09/11/2015 22:00")
parse_date_time(x = df, c("%d/%m/%Y %H:%M"))
我想要这样的东西:
df2 <- c ("09/11/2015 18:00", # 9th November 2015
"09/11/2015 19:00",
"10/11/2015 00:00") # 10th November 2015
【问题讨论】:
-
增加 2 小时确实会给您带来预期的输出,对吧?
as.POSIXct(df, format = "%d/%m/%Y %H:%M") + 60 * 60 * 2。如果需要,输出可以是formatted。或lubridate,dmy_hm(df) + hours(2) -
使用 lubridate 你应该可以做到
parse_date_time(x = df, c("%d/%m/%Y %H:%M")) + hours(2) -
啊,太好了,我没有意识到它也改变了日期。一个问题是结果仍然是 UTC
-
知道了,只是
parse_date_time(x = df, c("%d/%m/%Y %H:%M"), tz = "africa/dar_es_salaam") + hours(2)
标签: r date time timezone lubridate