在Ruby中将12小时时间转换为24小时格式
如何将“上午11点”和“晚上10点”转换为“11:00”和“22:00”? 是否有使用日期和时间类的简单方法?
我首先用Time#strptime
解析字符串然后用Time#strftime
输出它。 这确保了您对原始格式的严格检查。
require 'time' Time.strptime("10pm", "%I%P").strftime("%H:%M") => "22:00"
Time类没有parse方法,但是DateTime有。
require 'date' DateTime.parse("11pm").strftime("%H:%M") #=> "23:00"
你的问题不清楚,但听起来你有一个字符串“10pm”,你需要(1)将其捕获为时间,(2)以24小时格式表示时间。 我会这样做的。 首先, gem install chronic
,然后,写一个这样的脚本:
require 'chronic' t = Chronic.parse('10pm') p t.strftime("%H:%M")
返回“22:00”
你是说你想要上午11点和晚上10点然后能够11:00和22:00,或者你想要如何显示11:00和22:00而不是11点和10点?
如果这是第二个问题:
%H - Hour of the day, 24-hour clock (00 to 23).
#!/usr/bin/ruby -w time = Time.new puts time.to_s puts time.ctime puts time.localtime puts time.strftime("%H:%M")
如果它的第一个问题告诉:
%I Hour of the day, 12-hour clock (01 to 12).
#!/usr/bin/ruby -w time = Time.new timeSwitch = 1 if (timeSwitch == 1) puts time.strftime("%H:%M") else puts time.strftime("%I:%M") end
很抱歉,perl和ruby混淆了语法