gpt4 book ai didi

r - 如何在 POSIXct 中开始一天

转载 作者:行者123 更新时间:2023-12-01 08:25:56 26 4
gpt4 key购买 nike

我的一天从 2016-03-02 00:00:00 开始.不是 2016-03-02 00:00:01 .

我如何在 POSIXct 中获得一天的开始在本地时间?

我的困惑可能来自这样一个事实,即 R 将其视为 2016-03-01 的结束日期?鉴于 R 使用 ISO 8601?

例如,如果我尝试使用 Sys.Date() 查找一天的开始:

as.POSIXct(Sys.Date(), tz = "CET")
"2016-03-01 01:00:00 CET"

哪个不正确 - 但还有其他方法吗?

我知道我可以用一个简单的方法破解我的出路
as.POSIXct(paste(Sys.Date(), "00:00:00", sep = " "), tz = "CET")

但是必须有更正确的方法来做到这一点?优选基R。

最佳答案

这是一个单一的命令---但你想要 as.POSIXlt() :

R> as.POSIXlt(Sys.Date())
[1] "2016-03-02 UTC"
R> format(as.POSIXlt(Sys.Date()), "%Y-%m-%d %H:%M:%S")
[1] "2016-03-02 00:00:00"
R>

仅当转换为 POSIXct 时碰巧到 UTC 的时区偏移量(对我来说是六个小时)输入:
R> as.POSIXct(Sys.Date())
[1] "2016-03-01 18:00:00 CST"
R>

不用说,通过包装您可以获得所需的类型和值:
R> as.POSIXct(as.POSIXlt(Sys.Date()))
[1] "2016-03-02 UTC"
R>

再次归档下不需要 lubridate 或其他非 Base R 包。

关于r - 如何在 POSIXct 中开始一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35720154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com