日期和时间

  • POSIXct

    日期时间类 POSIXct 将时间存储为自 1970-01-01 00:00:00 UTC 上的 UNIX 纪元以来的秒数。这是用 Sys.Time() 拉当前时间时返回的格式。

  • POSIXlt

    日期时间类,存储日,月,年,小时,分钟,秒等列表。这是 strptime 返回的格式。

  • Date 唯一的日期类,将日期存储为浮点数。

选择日期时间格式

POSIXct 是 tidyverse 和 UNIX 世界的唯一选择。它比 POSIXlt 更快,占用的内存更少。

origin = as.POSIXct("1970-01-01 00:00:00", format ="%Y-%m-%d %H:%M:%S", tz = "UTC")

origin
## [1] "1970-01-01 UTC"

origin + 47
## [1] "1970-01-01 00:00:47 UTC"

as.numeric(origin)     # At epoch
## 0

as.numeric(Sys.time()) # Right now (output as of July 21, 2016 at 11:47:37 EDT)
## 1469116057

posixlt = as.POSIXlt(Sys.time(), format ="%Y-%m-%d %H:%M:%S", tz = "America/Chicago")

# Conversion to POISXct
posixct = as.POSIXct(posixlt)
posixct

# Accessing components
posixlt$sec   # Seconds 0-61
posixlt$min   # Minutes 0-59
posixlt$hour  # Hour 0-23
posixlt$mday  # Day of the Month 1-31
posixlt$mon   # Months after the first of the year 0-11
posixlt$year  # Years since 1900.

ct = as.POSIXct("2015-05-25")
lt = as.POSIXlt("2015-05-25")

object.size(ct)
# 520 bytes
object.size(lt)
# 1816 bytes

专业包

  • 随时
  • data.table IDate 和 ITime
  • fasttime
  • lubridate
  • nanotime