如何将“上午11点”和“晚上10点”转换为“11:00”和“22:00”? 是否可以使用日期和时间类的简单方法进行转换?
Time#strptime
解析字符串,然后使用Time#strftime
输出。这样可以确保与您原来的格式进行严格匹配。require 'time'
Time.strptime("10pm", "%I%P").strftime("%H:%M")
=> "22:00"
Time类没有解析方法,但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")
#!/usr/bin/ruby -w
time = Time.new
puts time.to_s
puts time.ctime
puts time.localtime
puts time.strftime("%H:%M")
%I 小时(01到12),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的语法。
time = 10
时,输出 time + 12 = 22
。 - John Riselvato