【问题标题】:How can I add time to a date time data frame with unknown time zone如何向具有未知时区的日期时间数据框添加时间
【发布时间】: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


【解决方案1】:

从 cmets 的帮助中应该是:

parse_date_time(x = df, c("%d/%m/%Y %H:%M"), tz = "africa/dar_es_salaam") + hours(2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-17
    • 2022-01-20
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多