Je cherche à écrire une méthode qui prendra une chaîne et me donnera
i peut utiliser En ce moment, il s'agit d'un problème car [to_datetime] [1] code> pour convertir la chaîne mais je ne vois pas un moyen de savoir si une valeur de temps a été fournie car la dateTime retournée s'initialisera à 00:00:00 +0000 code> si une valeur n'est pas fournie. P> to_datetime code> me donne une valeur par défaut lorsque J'utilise l'entrée. P> "1-1-2012".to_datetime # => Sun, 01 Jan 2012 00:00:00 +0000
"01/01/2012 23:59:59".to_datetime # => Sun, 01 Jan 2012 23:59:59 +0000
3 Réponses :
Déterminez d'abord avec une regex dans quelle situation vous êtes, puis j'ajouterais simplement 1 jour moins une seconde.
Juste mais je ne sais pas si une date a été fournie ou une date d'heure a été fournie. Je veux seulement aller à la fin de la journée si aucune valeur de temps n'est présente dans la chaîne
ahh le fit sortir. Je peux utiliser _PARSE pour obtenir les pièces:
DateTime._parse(date_only)
{:year=>2012, :mon=>1, :mday=>1}
DateTime._parse(date_and_time)
{:hour=>23, :min=>59, :sec=>59, :year=>2012, :mon=>1, :mday=>1}
Cela pourrait vous aider:
date = '10/10/2000'
result = begin
DateTime.strptime(date, '%d/%m/%Y %H:%M:%S')
rescue ArgumentError => e
DateTime.strptime(date, '%d/%m/%Y').at_end_of_day
end