Ruby Temps.analyser donne-moi en dehors de la plage d'erreur
Je suis en utilisant le Temps.analyser pour créer un objet de Temps à partir d'une chaîne.
Pour quelque raison
Time.parse("05-14-2009 19:00")
provoque un argument de notre gamme d'erreur, alors que
Time.parse("05-07-2009 19:00")
ne pas
Des idées?
Vous devez vous connecter pour publier un commentaire.
J'imagine que sa attend la deuxième partie de la chaîne (le 14) à la fin du mois.
Ce lien peut vous aider à analyser.
Si vous connaissez le format de la chaîne d'utilisation:
http://www.ruby-doc.org/core-1.9/classes/Time.html#M000266
Il permettra de résoudre votre problème et sera probablement plus rapide que
Time.parse
.EDIT:
Dirait qu'ils ont pris
strptime
de Temps de classe, mais elle appelleDate.strptime
de toute façon. Si vous êtes sur des Rails que vous pouvez faire:si vous utilisez pur ruby alors vous avez besoin:
Voir aussi: La Date et l'Heure de mise en forme des questions en Ruby on Rails.
DateTime.strptime("05-14-2009 19:00","%m-%d-%Y %H:%M").to_time
C'est à cause de l'heuristique de
Time#parse
.Et c'est en raison de l'anglo-américain formats.
Avec des tirets '-' il attend mm-jj-aaaa, avec une barre oblique '/' il attend jj/mm/aaaa.
Ce comportement changements intentionnellement dans la 1.9. pour accomplir eur, de l'iso et jp date de normes.
-
il s'attend à cedd-mm-yyyy
ouyyyy-mm-dd
(dans ce dernier cas, les deux premiersy
s sont en option), avec des barres obliques/
il s'attend à cemm/dd/yyyy
(ici les deux premiersy
sont optionnels, trop).mm/dd/yyyy
et pour 1.9.2 c'estdd/mm/yyyy
. Les deux Rubys analyser le tableau de bord-formatdd-mm-yyyy
. Mais je ne suis pas sûr à 100% si c'est seulement à cause de la version de Ruby, ou si d'autres facteurs influent sur l'analyse, trop; comme l'ordinateur, la date, l'heure, des régions et/ou timezone-paramètres.Vous n'avez probablement pas besoin de résoudre ce problème mais je vous recommandons de vérifier la langue naturelle de la date/heure de l'analyseur Chronique, il m'a sauvé beaucoup de travail d'un couple de fois.
Il est probablement attendre le Jour-Mois-Année de format, de sorte que votre première valeur est d'essayer de préciser la 5e journée de la 14ème mois.