R 转换为.POSIXct 到 Date 减去一天

问题描述 投票:0回答:2

例如,如果我在 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
2个回答
2
投票

根据您的需要指定

tz
中的
as.Date()
(时区),然后就可以开始了:

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

2
投票

帮助文件中的 as.Date() 有许多可选参数:

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

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

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

从上面的帮助文件中看到,as.Date 中默认的 tz 参数是 UTC。如果您指定欧洲中部时间 (CET),那么您的结果应该是相同的

as.Date(as.POSIXct("2023-10-11 00:02:00"),tz="CET")
© www.soinside.com 2019 - 2024. All rights reserved.