尝试在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"