08 setembro, 2021

Selo DC

Outras objetos para datas

  • Objeto POSIXct: Classe c("POSIXct, "POSIXt")
  • Objeto POSIXlt: Classe c("POSIXlt, "POSIXt")
  • Siga POSIX: do inglês, Portable Operating System Interface

Construtor 1

  • .POSIXct():
    • vetor tipo double;
    • argumento de entrada representa o número de segundos desde “1970-01-01”;
    • "POSIXct" e "POSIXt"
    • Exemplo:
# Marco zero
(mzero <- .POSIXct(0))
## [1] "1969-12-31 21:00:00 -03"
# Classe
class(mzero)
## [1] "POSIXct" "POSIXt"

Argumento tz

# Marco zero, baseado no calendario SO
.POSIXct(0)
## [1] "1969-12-31 21:00:00 -03"
# Marco zero, fuso Horario de Greenwich (GMT) ou Tempo Universal Coordenado (UTC)
.POSIXct(0, tz = "GMT")
## [1] "1970-01-01 GMT"
.POSIXct(0, tz = "UTC")
## [1] "1970-01-01 UTC"

Coersão

# Objeto caractere
x <- "2021-09-02 22:46:30"
data_hora1 <- as.POSIXct(x)
class(data_hora1)
## [1] "POSIXct" "POSIXt"
# Objeto numerico
data_hora2 <- as.POSIXct(100, origin = "1955-09-13")
class(data_hora2)
## [1] "POSIXct" "POSIXt"

Construtor 2

  • .POSIXlt():
    • Argumento de entrada é uma lista com no mínimo 9 componentes
Componente Descrição
sec Segundos
min Minutos
hour Horas
mon Mês
zone Fuso horário
wday Dias da semana
mday Dias do mês
year Anos desde “1899-12-31.”
isdst O fuso horário é utilizado para configurar o isdst, que representa o horário de verão
gmtoff Deslocamento em segundos do horário de Greenwich (GMT)

Exemplo

# Marco zero
xx <- list(sec = 0, min = 0, hour = 0, mday = 0,
           mon = 0, year = 0, wday = 0, yday = 0,
           isdst = 0, zone = "America/Sao_Paulo", gmtoff = "")
tempo1 <- .POSIXlt(xx)
class(tempo1)
## [1] "POSIXlt" "POSIXt"
# Objeto caractere -> POSIXlt
tempo2 <- strptime("2021-09-02 03:21 am UTC", "%Y-%m-%d"); tempo2; unlist(tempo2)
## [1] "2021-09-02 -03"
##    sec    min   hour   mday    mon   year   wday   yday  isdst   zone gmtoff 
##    "0"    "0"    "0"    "2"    "8"  "121"    "4"  "244"    "0"  "-03"     NA
class(tempo2)
## [1] "POSIXlt" "POSIXt"

Bons estudos!