Como obter um registro de data e hora do UNIX (número de segundos desde 1970 GMT) de um objeto Date em um aplicativo Rails?
Eu sei que Time#to_i
retorna um carimbo de data / hora, mas fazer Date#to_time
e, em seguida, obtê-lo resulta em algo que está desativado em cerca de um mês (não sei por que ...).
Qualquer ajuda é apreciada, obrigado!
Edit: OK, eu acho que descobri - eu estava processando uma data várias vezes em um loop, e cada vez que a data era movida um pouco por causa de uma incompatibilidade de fuso horário, levando a minha data e hora a um mês de folga. Ainda assim, eu estaria interessado em saber se há alguma maneira de fazer isso sem depender deDate#to_time
.
fonte
to_utc
date.to_time.utc
provavelmente é o que ele quis dizer.Recebo o seguinte quando tento:
A diferença entre esses dois números se deve ao fato de
Date
não armazenar as horas, minutos ou segundos da hora atual. Converter umDate
em umTime
resultará nesse dia, meia-noite.fonte
As opções sugeridas para usar
to_utc
ouutc
corrigir o deslocamento da hora local não funcionam. Para mim, achei que o usoTime.utc()
funcionou corretamente e o código envolve menos etapas:vs
Aqui está o que acontece quando você chama utc depois de usar
Date
....... ligar com clareza
to_i
fornecerá o carimbo de data / hora errado.fonte
Solução para Ruby 1.8 quando você possui um objeto DateTime arbitrário:
fonte
fonte