as.POSIXct fornece um fuso horário inesperado

Estou tentando converter um yearmon date (a partir dejardim zoológic package) para um POSIXct no fuso horário UTC. Isto é o que eu tentei fazer:

> as.POSIXct(as.yearmon("2010-01-01"), tz="UTC")
[1] "2010-01-01 01:00:00 CET"

Recebo o mesmo ao converter uma Data:

> as.POSIXct(as.Date("2010-01-01"),tz="UTC")
[1] "2010-01-01 01:00:00 CET"

A única maneira de fazê-lo funcionar é passar um caractere como argumento:

> as.POSIXct("2010-01-01", tz="UTC")
[1] "2010-01-01 UTC"

Examinei a documentação de DateTimeClasses, tzset efusos horário. Meu / etc / localtime está definido como Europe / Amsterdam. Não consegui encontrar uma maneira de definir tz como UTC, além de definir a variável de ambiente TZ:

> Sys.setenv(TZ="UTC")
> as.POSIXct(as.Date("2010-01-01"),tz="UTC")
[1] "2010-01-01 UTC"

É possível definir o fuso horário diretamente ao criar um POSIXct a partir de um ano ou data?

Editar

Verifiquei as funções como.POSIXct.ano. Este passa para o as.POSIXct.Date.

> zoo:::as.POSIXct.yearmon
function (x, tz = "", ...) 
as.POSIXct(as.Date(x), tz = tz, ...)
<environment: namespace:zoo>

Assim como Joshua diz que o fuso horário se perde no as.POSIXct.Date. Por enquanto, usarei a sugestão Richies para definir o tzone manualmente usando:

attr (x, "tzone") <- 'UTC'

Isto resolve o problema da zona perdida, que é usada apenas para apresentação e não internamente, como sugerido por Grothendieck e Dwi

questionAnswers(4)

yourAnswerToTheQuestion