```Sorry, I missed the reply below, Robert, please ignore the follow-up.

On Mar 7, 2012, at 10:00 AM, Robert Klemme wrote:

> Mario Trento wrote in post #1050518:
>> Is there any time function to get military time:
>> eg.
>>
>> tim="0457"
>> Time.striptime(time,....)       ==> 16:57
>
> You can create a Time from individual fields:
>
> irb(main):004:0> Time.mktime 2012,3,10,10,11,12
> => 2012-03-10 10:11:12 +0100
>
> You can use that to parse yourself and create the time object, e.g.
>
> def mt(s)
>  raise "Not military #{s.inspect}" unless /\A(\d{2})(\d{2})\z/ =~ s
>  h = (\$1.to_i + 12) % 24 # correct?
>  m = \$2.to_i
>  now = Time.now
>  Time.mktime now.year, now.month, now.day, h, m
> end
>
> irb(main):021:0> mt "0457"
> => 2012-03-07 16:57:00 +0100
>
> Of course you can also change that to work with numbers if you prefer
>
> def mt(n)
>  raise "Not military #{s.inspect}" unless Integer === n
>  h, m = n.divmod 100
>  h = (h + 12) % 24 # correct?
>  now = Time.now
>  Time.mktime now.year, now.month, now.day, h, m
> end
>
> irb(main):029:0> mt 457
> => 2012-03-07 16:57:00 +0100
>
>
> irb(main):030:0> 0457
> => 303
>
>> I found this sample below, it it works opposite, could not find any info
>> how to get reverse so I'll get military format:
>
>> def format_time(time)
>>  # normalize time
>>  time = time.to_s.rjust(4, '0') if time[0] !~ /[12]/
>>  time = time.to_s.ljust(4, '0') if time[0] =~ /[12]/
>> puts "New_time=" + time.to_s
>>
>>  Time.strptime(time, '%H%M').strftime('%l:%M').strip
>> end
>>
>> time = 1630
>> p format_time(time) # "4:30"
>
> That just looks awful since it works with strings instead using Time
> properly.
>
> Kind regards
>
> robert
>
> --
> Posted via http://www.ruby-forum.com/.
>

```