¿Cómo obtendría una marca de tiempo UNIX (número de segundos desde 1970 GMT) de un objeto Date en una aplicación Rails?
Sé que Time#to_idevuelve una marca de tiempo, pero hacer Date#to_timey luego obtener la marca de tiempo da como resultado algo que está apagado por aproximadamente un mes (no estoy seguro de por qué ...).
Cualquier ayuda es apreciada, gracias!
Editar: OK, creo que lo descubrí: estaba procesando una fecha varias veces en un bucle, y cada vez que la fecha se movió un poco debido a una falta de coincidencia de zona horaria, lo que finalmente provocó que mi marca de tiempo estuviera un mes libre. Aún así, me interesaría saber si hay alguna manera de hacer esto sin depender Date#to_time.
fuente

to_utcdate.to_time.utces probablemente lo que quiso decir.Recibo lo siguiente cuando lo intento:
La diferencia entre estos dos números se debe al hecho de que
Dateno almacena las horas, minutos o segundos de la hora actual. La conversión de aDateaTimedará como resultado ese día, medianoche.fuente
Las opciones sugeridas de usar
to_utcoutcpara corregir el desplazamiento de hora local no funcionan. Para mí, el usoTime.utc()funcionó correctamente y el código implica menos pasos:vs
Esto es lo que sucede cuando llamas a utc después de usar
Date...... tan claramente que llamar
to_iva a dar la marca de tiempo incorrecta.fuente
Solución para Ruby 1.8 cuando tienes un objeto DateTime arbitrario:
fuente
fuente