r语言 - Sys.Date() with as.POSIXct()



尝试在POSIXct类中获取当前日期。我尝试了以下操作:

as.POSIXct (Sys.Date(),格式="% m/% d/% y", tz ="EST")

[1] 2012-02-12 19:00:00 est

和我希望只得到日期没有时间,但在POSIXct类。例如:

[1]"2021 - 02 - 12">

将Date类对象转换为字符优先:

as.POSIXct(format(Sys.Date()))
## [1] "2021-02-13 EST"

更短的是:

trunc(Sys.time(), "day")
## [1] "2021-02-13 EST"

注意:

  • POSIXct对象在内部存储为从Epoch开始的秒,而不是作为单独的日期和时间,因此它们总是有时间;但是,如果时间为午夜,则在使用默认格式打印时不会显示。

  • 如果你只需要日期,通常最好使用Date类,因为使用POSIXct类可能会导致微妙的时区错误,如果你不小心,通常没有理由暴露自己的潜力,如果你不需要。

  • 如果你改变会话的时区,那么它将不会显示没有时间,因为一个时区的午夜不是其他时区的午夜。

    x <- as.POSIXct(format(Sys.Date()))
    x
    ## [1] "2021-02-13 EST"
    # change time zone
    Sys.setenv(tz = "GMT")
    x
    ## [1] "2021-02-13 05:00:00 GMT"
    # change back
    Sys.setenv(tz = "")
    x
    ## [1] "2021-02-13 EST"
    

最新更新