【问题标题】:Confusion regarding DateTime conversion in R关于 R 中日期时间转换的困惑
【发布时间】:2018-09-28 12:34:18
【问题描述】:

我正在尝试将字符串转换为 R 中的 dateTime 对象

样本数据:

以下是我用于转换的代码

sample$Tweet_Timestamp <- lapply(sample$Tweet_Timestamp, function(x) as.POSIXct(strptime(x, "%a %b %d %H:%M:%S %z %Y")))
sample<-sample%>%unnest(Tweet_Timestamp)

我得到的结果如下:

现在在结果中我们可以看到日期已从 2 月 18 日转换为 2 月 19 日。我不明白为什么会得到这样的结果。有人可以帮我破译一下吗?

【问题讨论】:

  • 切换日期可能是时区问题
  • 我也在想同样的事情,只是想确定一下

标签: r strptime datetime-conversion


【解决方案1】:

as.POSIXct 会自动将日期时间转换为本地系统的时区。如果您希望保留原始时区,可以通过添加tz = "UTC" 来实现,这是默认的世界时。

例如,以下代码(使用示例数据的第一行):

as.POSIXct(strptime("Tue Feb 18 23:09:57 +0000 2014", "%a %b %d %H:%M:%S %z %Y", tz = "UTC"))

将产生以下输出(不改变时区):

[1] "2014-02-18 23:09:57 UTC"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2015-07-30
    • 2013-01-06
    • 2017-04-19
    相关资源
    最近更新 更多