【问题标题】:R - midnight POSIXct to dateR - 午夜 POSIXct 至今
【发布时间】:2020-07-11 00:26:05
【问题描述】:

如果我有这样的午夜(甚至是午夜 posixct 左右)日期

> as.POSIXct("2020-01-01 00:00:00")
[1] "2020-01-01 CET"

但如果我把它转移到我在这个日期前一天得到的日期

> as.Date(as.POSIXct("2020-01-01 00:00:00"))
[1] "2019-12-31"

如果那个时间是早上 8 点等,as.Date 可以正常工作。对于我的示例,我如何获得 2020-01-01 日期,其中小时是午夜?

【问题讨论】:

  • as.Date(substr(x, 1, 10)) 也应该可以工作
  • 如果 ct 是您的 POSIXct 对象,请尝试 as.Date(format(ct)) 这将使用您的默认时区对其进行格式化,然后 as.Date 将获取该日期。

标签: r posixct as.date


【解决方案1】:

您需要重新指定时区。

正如您在?as.Date 中看到的:

## 类 'POSIXct' 的 S3 方法

as.Date(x, tz = "UTC", ...)

函数默认为UTC。

as.Date(as.POSIXct("2020-01-01 00:00:00",tz="CET"),tz="CET")
#[1] "2020-01-01"

as.Date(as.POSIXct("2020-01-01 00:00:00",tz="CET"))
#[1] "2019-12-31"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 2012-10-19
    • 1970-01-01
    相关资源
    最近更新 更多