【问题标题】:lubridate ymd_hms() strange output when time shift is included包含时移时润滑 ymd_hms() 奇怪的输出
【发布时间】:2020-04-14 15:24:46
【问题描述】:

我对@9​​87654322@ 的ymd_hms() 的输出感到困惑。 我从网上抓取了一些数据,其中包含以下格式的时间戳:

time_series <- c("2019-10-17 23:43:50+00:00", "2019-10-17 23:43:50+01:00")

如果我在时间序列上使用ymd_hms(),我会得到以下信息:

 library(ludridate)    
 ymd_hms(time_series)
 # [1] "2019-10-17 23:43:50 UTC" "2019-10-17 22:43:50 UTC"

为什么第二个时间戳要提前一小时转换?根据我的理解以及在我抓取数据的网站上,应该是一小时后(+01:00):

#[1] "2019-10-17 23:43:50 UTC" "2019-10-18 00:43:50 UTC"

我做错了什么?以及如何更改 ymd_hms() 的行为以获得所需的输出?

【问题讨论】:

  • 我相信2019-10-17 23:43:50+01:00 表示这是 UTC+1 中的 23:43:50,因此在 UTC 中这应该是 22:43:50,这似乎是正确的。

标签: r time lubridate datetime-conversion


【解决方案1】:

尽管这是一个老问题。 Piotr K 是绝对正确的。时间总是与协调世界时 (UTC) 相关联。所以时间戳hh:mm:ss+01:00 表示UTC + 1 小时。由于ymd_hms() 默认将所有时间戳转换为UTC,因此上述行为是绝对正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 2020-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    相关资源
    最近更新 更多