J'ai un entier d'horodatage unix de 1550814673
et je veux le comparer à:
Time.at(1550814673).utc.to_datetime => Fri, 22 Feb 2019 05:51:13 +0000
J'ai essayé de transformer l'entier en datetime avec ceci:
Record.first.created_at => Fri, 22 Feb 2019 05:51:13 UTC +00:00 Record.first.created_at.class => ActiveSupport::TimeWithZone
Mais ce n'est pas tout à fait la même chose et ne se comparera pas honnêtement avec un opérateur ==
3 Réponses :
Utilisez plutôt DateHeure
!
DateTime.parse("#{Record.first.created_at}") == DateTime.strptime("1318996912",'%s') => true
Devrait renvoyer quelque chose de facile à digérer, et vous pouvez alors le faire facilement:
DateTime.strptime("1318996912",'%s') => Wed, 19 Oct 2011 04:01:52 +0000
Vous pouvez essayer d'utiliser to_i
à une heure, et cela devrait vous donner quelque chose que vous pourriez utiliser
date = Date.today => Tue, 14 May 2019 date.to_time.to_i => 1557784800 Time.at(1557784800) => 2019-05-14 00:00:00 +0200
Cependant, les instances ActiveSupport :: TimeWithZone
correspondent en fait aux instances Time si le fuseau horaire est le même. Par exemple Time.zone.at (1550814673) == Time.at (1550814673)
.