如何将“11am”和“10pm”转换为“11:00”和“22:00”?是否有使用日期和时间类的简单方法?
答案 0 :(得分:23)
我首先用Time#strptime
解析字符串,然后用Time#strftime
输出。这确保了对原始格式的严格检查。
require 'time'
Time.strptime("10pm", "%I%P").strftime("%H:%M")
=> "22:00"
答案 1 :(得分:11)
Time类没有parse方法,但DateTime有。
require 'date'
DateTime.parse("11pm").strftime("%H:%M") #=> "23:00"
答案 2 :(得分:3)
你的问题不清楚,但听起来你有一个字符串“10pm”,你需要(1)将其捕获为时间,(2)以24小时格式表示时间。我会这样做的。首先,gem install chronic
然后编写一个这样的脚本:
require 'chronic'
t = Chronic.parse('10pm')
p t.strftime("%H:%M")
返回“22:00”
答案 3 :(得分:0)
你是说你想要上午11点和晚上10点,然后能够11点和22点,或者你想要如何显示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混淆了语法