Convertir Fecha a POSIXct

¿Por qué a la Fecha de abajo cambia a «2014-07-07» cuando se convierte en POSIXct?

Sys.setenv(TZ='America/Sao_Paulo')
d <- as.Date("2014-07-08", format="%Y-%m-%d")
d
[1] "2014-07-08"
as.POSIXct(d)
[1] "2014-07-07 21:00:00 BRT"
  • Podría esto estar relacionado con la zona horaria? Lo que si el suministro de un momento específico de la zona cuando se llama a as.POSIXct(d, tz = "...")?
  • Yo quería saber la razón por la que sucede, ya tengo una solución.
  • Tal vez a causa de esto (de ?as.POSIXct): «las Fechas sin veces son tratados como a la medianoche UTC.»
  • ¿Qué es un fromat? 🙂

1 Kommentar

  1. 13

    Porque as.POSIXct.Date no busca una zona horaria (y no pasar a .POSIXct si se especifica en ...) y la Fecha en que los objetos son «UTC», por lo que su POSIXct es la desviación de la UTC de la Fecha de objetos.

    Sería mejor llamar as.POSIXct en la cadena de caracteres directamente, si usted puede:

    > as.POSIXct("2014-07-08", format="%Y-%m-%d")
    [1] "2014-07-08 BRT"
    • …o convertir la Fecha a character primero: as.POSIXct(format(d))
    • Gracias, Josué. Que extraño, no es un (...) argumento, pero no se pasa a .POSIXct, y pasando de una simple zona horaria paramater resolver este .POSIXct(unclass(d) * 86400, tz="UTC")
    • No estoy seguro de que lo soluciona, ya que es la medianoche UTC, no de la medianoche hora local.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea