【问题标题】:Converting timestamp in seconds to a date format in R将时间戳(以秒为单位)转换为 R 中的日期格式
【发布时间】:2018-03-15 19:05:11
【问题描述】:

我有一个表(标签),其中包含时间戳 (ts) 列,其格式为自 1970 年 1 月 1 日格林威治标准时间以来的秒数。我正在尝试创建一个日期列,将时间戳从秒转换为日期和时间 EST。

建议的 R 代码是:

tags$date<-strptime(tags$ts, "%Y-%m-%d")
tags$date<-as.POSIXct(tags$date)

但是当我这样做时,tags$date 会显示为 NA。关于我可能做错的任何建议?谢谢。

【问题讨论】:

标签: r date timestamp strptime


【解决方案1】:

你应该使用as.POSIXct 函数来代替:

tags$date <- as.POSIXct(tags$ts, origin="1970-01-01", tz="US/New York")

strptime 在字符表示和日期之间转换,而不是在时间戳和日期之间转换。

【讨论】:

  • 还需要时区 EST 中的时间,因此类似于 tags$date
  • 你说得对,我忘记了时区。刚刚编辑了我的答案。谢谢
【解决方案2】:

这是lubridate 版本。当我们使用as_datetime 时,我们不需要显式指定原点,因为它默认为所需的原点。

lubridate::as_datetime(1507119276, tz='EST')
# [1] "2017-10-04 07:14:36 EST"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 2020-06-24
    • 1970-01-01
    • 2020-10-24
    • 2021-10-23
    相关资源
    最近更新 更多