R 转换为。POSIXct to Date 减去一天

R transformation as.POSIXct to Date substracts one day

提问人:prdel99 提问时间:10/11/2023 最后编辑:thelatemailprdel99 更新时间:10/11/2023 访问量:37

问:

例如,如果我在 R 中有 POSIXct 日期

as.POSIXct("2023-10-11 00:02:00")
"2023-10-11 00:02:00 CEST"

如果我将其传输到 Date,我会得到意外的输出

as.Date(as.POSIXct("2023-10-11 00:02:00"))
"2023-10-10"

不得不说我不知道为什么。

r posixct

评论


答:

3赞 Soren 10/11/2023 #1

as 中有许多可选参数。日期():

## S3 method for class 'POSIXct'
as.Date(x, tz = "UTC", ...)

在这里,时区 (tz) 参数可能是导致两个示例中差异的原因。

在第一种情况下:“2023-10-11 00:02:00 CEST”显示 CEST 时区的凌晨 2 点。

从上面的帮助文件中可以看出,as 中的默认 tz 参数。日期为 UTC。如果指定中欧时间 (CET),则结果应相同

as.Date(as.POSIXct("2023-10-11 00:02:00"),tz="CET")
2赞 Friede 10/11/2023 #2

根据您的需要指定(时区),您就可以开始了:tzas.Date()

as.Date(as.POSIXct("2023-10-11 00:02:00"), tz = "Europe/Berlin")
[1] "2023-10-11"