12
votes

Convertir 12 heures de temps au format de 24 heures en rubis

Comment convertir "11h00" et "22h00" et "22:00"? Y a-t-il un moyen simple en utilisant les classes de date et d'heure?


0 commentaires

4 Réponses :


0
votes

Vous dites que vous voulez que vous voulez 11h et 22 heures, puis la capacité de 11h00 et 22h00 ou voulez-vous savoir comment montrer 11:00 et 22h00 au lieu de 11h et 22h00?

Si sa seconde Question ici: P>

% H - heure de la journée, horloge de 24 heures (00 à 23). Code> p>

#!/usr/bin/ruby -w
time = Time.new
timeSwitch = 1

if (timeSwitch == 1)
    puts time.strftime("%H:%M")
else 
    puts time.strftime("%I:%M")
end


2 commentaires

J'ai vu le% H et% I des drapeaux dans la Strftime (). Je n'essaie pas de formater l'heure actuelle. J'ai une chaîne avec '22h' et je voudrais le convertir en '22: 00 '. Merci pour votre réponse rapide.


Juste faire Time_string + 12 = convertiTime donc TIME = 10 Met Time + 12 = 22



3
votes

Votre question n'est pas claire, mais il semble que vous ayez une chaîne "10h00", et vous devez (1) la capturer comme une heure et (2) représenter ce temps au format 24 heures. Je le ferais comme ça. Premièrement, GEM Installez chronique , puis écrivez un script comme celui-ci: xxx

retourne "22:00"


0 commentaires

12
votes

La classe de temps n'a pas de méthode d'analyse, mais DateTime a.

require 'date'
DateTime.parse("11pm").strftime("%H:%M") #=> "23:00"


1 commentaires

Parfait! Je n'ai fait à tort DateTime.parse ("11h"). To_time.strfTime ("% h:% m") avant. Merci!



28
votes

Je voudrais d'abord analyser la chaîne avec TIME # STRIPTIME CODE>, puis la sortie avec TIME # Strftime code>. Cela garantit également un contrôle strict avec votre format d'origine.

require 'time'
Time.strptime("10pm", "%I%P").strftime("%H:%M")
=> "22:00"


1 commentaires

+1 pour l'heure "exigent" ", qui ajoute également une méthode d'analyse à la classe d'appel (si la strictisme n'est pas souhaitable).