【问题标题】:Simplest way to extract date from timestamp从时间戳中提取日期的最简单方法
【发布时间】:2017-03-06 10:50:24
【问题描述】:

考虑以下时间戳

timestamp <- ymd_hms("2011-08-10 14:00:00", tz = "Pacific/Auckland")

> timestamp
[1] "2011-08-10 14:00:00 NZST"

从中获取日期部分2011-08-10 并确保这一天是正确的日期而不是字符串的最简单方法是什么?

在这里使用lubridate::day(timestamp) 显然失败了。

【问题讨论】:

  • 随便as.Date
  • 我认为您正在寻找lubridate::date。与as.Date 的区别在于date 使用指定时区中存在的日期,而不是首先转换为UTC(as.Date 中的默认值,尽管它可以采用tz 参数)。
  • floor_date(timestamp,"day") 产生具有正确时区的 POSIXct...
  • 我认为你现在也可以使用 lubridate 和 as_date 而不是 as_datetime mutate(day=as_datetime(timestamp)) 这将在管道内工作

标签: r datetime lubridate


【解决方案1】:

现在还有data.tables as.IDate()函数:

timestamp <- "2011-08-10 14:00:00"
data.table::as.IDate(timestamp)

【讨论】:

    【解决方案2】:

    使用日期而不是日期

    lubridate::date(timestamp)
    

    【讨论】:

      【解决方案3】:

      这可能是最简单的方法:

      date(timestamp)
      

      它将返回一个日期类而不是一个字符串。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多