R Language
Clases de fecha y hora (POSIXct y POSIXlt)
Buscar..
Introducción
R incluye dos clases de fecha y hora: POSIXct y POSIXlt: consulte ?DateTimeClasses
.
Observaciones
Escollos
Con POSIXct, la medianoche mostrará solo la fecha y la zona horaria, aunque el tiempo completo todavía se almacena.
Temas relacionados
Paquetes especializados
- lubricar
Formateo e impresión de objetos de fecha y hora.
# test date-time object options(digits.secs = 3) d = as.POSIXct("2016-08-30 14:18:30.58", tz = "UTC") format(d,"%S") # 00-61 Second as integer ## [1] "30" format(d,"%OS") # 00-60.99… Second as fractional ## [1] "30.579" format(d,"%M") # 00-59 Minute ## [1] "18" format(d,"%H") # 00-23 Hours ## [1] "14" format(d,"%I") # 01-12 Hours ## [1] "02" format(d,"%p") # AM/PM Indicator ## [1] "PM" format(d,"%z") # Signed offset ## [1] "+0000" format(d,"%Z") # Time Zone Abbreviation ## [1] "UTC"
Consulte ?strptime
para obtener detalles sobre las cadenas de formato aquí, así como otros formatos.
Análisis de cadenas en objetos de fecha y hora
Las funciones para analizar una cadena en POSIXct y POSIXlt toman parámetros similares y devuelven un resultado similar, pero hay diferencias en cómo se almacena esa fecha y hora; ver las observaciones."
as.POSIXct("11:38", # time string
format = "%H:%M") # formatting string
## [1] "2016-07-21 11:38:00 CDT"
strptime("11:38", # identical, but makes a POSIXlt object
format = "%H:%M")
## [1] "2016-07-21 11:38:00 CDT"
as.POSIXct("11 AM",
format = "%I %p")
## [1] "2016-07-21 11:00:00 CDT"
Tenga en cuenta que la fecha y la zona horaria están imputadas.
as.POSIXct("11:38:22", # time string without timezone
format = "%H:%M:%S",
tz = "America/New_York") # set time zone
## [1] "2016-07-21 11:38:22 EDT"
as.POSIXct("2016-07-21 00:00:00",
format = "%F %T") # shortcut tokens for "%Y-%m-%d" and "%H:%M:%S"
Vea ?strptime
para detalles sobre las cadenas de formato aquí.
Notas
Elementos faltantes
- Si no se suministra un elemento de fecha, entonces se usa el de la fecha actual.
- Si no se suministra un elemento de tiempo, entonces se usa desde la medianoche, es decir, 0s.
- Si no se proporciona una zona horaria ni en la cadena ni en el parámetro
tz
, se usa la zona horaria local.
Zonas horarias
- Los valores aceptados de
tz
dependen de la ubicación.-
CST
se administra con"CST6CDT"
o"America/Chicago"
-
- Para ubicaciones admitidas y zonas horarias use:
- En R:
OlsonNames()
- Alternativamente, pruebe con R:
system("cat $R_HOME/share/zoneinfo/zone.tab")
- En R:
- Estas ubicaciones están dadas por la Autoridad de Números Asignados de Internet (IANA)
Aritmética de fecha y hora
Para agregar / restar tiempo, use POSIXct, ya que almacena los tiempos en segundos
## adding/subtracting times - 60 seconds
as.POSIXct("2016-01-01") + 60
# [1] "2016-01-01 00:01:00 AEDT"
## adding 3 hours, 14 minutes, 15 seconds
as.POSIXct("2016-01-01") + ( (3 * 60 * 60) + (14 * 60) + 15)
# [1] "2016-01-01 03:14:15 AEDT"
Más formalmente, as.difftime
se puede usar para especificar períodos de tiempo para agregar a una fecha o un objeto de fecha y hora. P.ej:
as.POSIXct("2016-01-01") +
as.difftime(3, units="hours") +
as.difftime(14, units="mins") +
as.difftime(15, units="secs")
# [1] "2016-01-01 03:14:15 AEDT"
Para encontrar la diferencia entre fechas / horas, use difftime()
para las diferencias en segundos, minutos, horas, días o semanas.
# using POSIXct objects
difftime(
as.POSIXct("2016-01-01 12:00:00"),
as.POSIXct("2016-01-01 11:59:59"),
unit = "secs")
# Time difference of 1 secs
Para generar secuencias de fecha-hora use seq.POSIXt()
o simplemente seq
.