Mauvaise date avec ruby Date.aujourd'hui et DateTime.maintenant
J'ai installé ruby 1.8.6-p383 avec RVM. Système de ruby 1.9.1_p378-1
Je me fais de la mauvaise date de Date de.aujourd'hui et DateTime.maintenant, lors de l'utilisation de ruby 1.8.. alors que le Temps.maintenant est correct:
irb(main):002:0> DateTime.now.to_s
=> "2126--1-10618T11:23:43+00:00"
irb(main):004:0> Date.today.to_s
=> "2126--1-10618"
irb(main):005:0> Time.now
=> Thu Jan 28 11:55:27 +0000 2010
Tout va bien si je passe à ruby 1.9:
irb(main):003:0> DateTime.now.to_s
=> "2010-01-28T11:58:51+00:00"
irb(main):004:0> Date.today.to_s
=> "2010-01-28"
irb(main):005:0> Time.now
=> 2010-01-28 11:59:05 +0000
Des conseils sur la façon d'obtenir DateTime pour fonctionner correctement en cas de ruby 1.8 seraient appréciés!
J'ai installé ruby 1.8.7, qui est de retour à la date correcte.
semble bien fonctionner pour moi ruby 1.8.6 p287 est à l'aide de 1.8.6 une obligation pour vous?
Je n'ai pas besoin 1.8.6, c'est de travailler avec 1.8.7.. Donc je n'ai pas besoin d'obtenir ce résolues.. C'est juste très étrange! J'ai seulement installé 1.8.6, parce que c'est ce que rvm par défaut lorsque vous faites "installer rvm 1.8"
semble bien fonctionner pour moi ruby 1.8.6 p287 est à l'aide de 1.8.6 une obligation pour vous?
Je n'ai pas besoin 1.8.6, c'est de travailler avec 1.8.7.. Donc je n'ai pas besoin d'obtenir ce résolues.. C'est juste très étrange! J'ai seulement installé 1.8.6, parce que c'est ce que rvm par défaut lorsque vous faites "installer rvm 1.8"
OriginalL'auteur Rob | 2010-01-28
Vous devez vous connecter pour publier un commentaire.
Je suis tombé sur le même problème et a obtenu 3 solutions différentes, j'ai essayé les 2 et les deux travaillé. Lire plus sur le sujet ici:
http://www.ruby-forum.com/topic/210647
Jarmo
OriginalL'auteur Jarmo Pertman
La chaîne renvoyée semble être très cassé: i) l'année est 2126, ii) il y a deux traits d'union entre l'année et le mois, et ii) la journée est 10618.
Quelle plate-forme êtes-vous? Quel fuseau horaire vous êtes sur (l'exemple implique que vous êtes en GMT)?
Je suis sur WinXP et Ruby 1.8.6-p111 donne le même résultat dans tous les trois cas.
Edit: j'ai fait quelques recherches dans le Ruby code source (
Date
etDateTime
sont définis danslib/date.rb
).Il s'avère que
Date.today
appelle en interneTime.now.__send__(:to_date)...
, alors peut-être que vous devriez essayer d'appelerTime.now.__send__(:to_date).to_s
dansirb
et de comparer la sortie deTime.now.to_s
afin de réduire le problème.Date.today
appelle aussi.new_start(...)
sur le crééDate
exemple donc c'est peut-être gâcher la date dans votre cas.OriginalL'auteur liwp
Je ne sais pas si vous exécutez les choses localement ou sur le serveur, mais je pense que ruby prend peut-être le serveur de date, ce qui peut être dans un autre fuseau horaire que vous êtes, et ainsi, apparaissent différemment.
OriginalL'auteur gburgoon