# Time Format Conversions

**URL:** <https://www.ruby-forum.com/t/time-format-conversions/174709>\
**Category:** Ruby\
**Created:** [August 31, 2009, 7:27pm UTC](https://www.ruby-forum.com/t/time-format-conversions/174709 "2009-08-31T19:27:38Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [August 31, 2009, 7:27pm UTC](https://www.ruby-forum.com/t/time-format-conversions/174709/1 "2009-08-31T19:27:38Z")

</div>

Hi all,

So, I’m trying to find out the best practice for converting a time  
format from the following:

“3:00 PM”  
“10:00 PM”  
“1:00 AM”

TO:

“15:00:00”  
“22:00:00”  
“01:00:00”

Can anyone help me out on what I need to do here? I’m pulling strings  
that need to be parsed and converted from \> to the listings above.

Any help would be appreciated.

Many thanks in advance.

JD

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [August 31, 2009, 8:08pm UTC](https://www.ruby-forum.com/t/time-format-conversions/174709/2 "2009-08-31T20:08:45Z")

</div>

gem install chronic

Chronic.parse(“3:00 PM”).strftime(’%H:%M:%S’)  
=\> “15:00:00”

Does this work?

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [August 31, 2009, 8:10pm UTC](https://www.ruby-forum.com/t/time-format-conversions/174709/3 "2009-08-31T20:10:31Z")

</div>

Oops.

$ gem install chronic  
$ irb

> require ‘chronic’  
> Chronic.parse(“3:00 PM”).strftime(’%H:%M:%S’)  
> =\> “15:00:00”

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [August 31, 2009, 10:15pm UTC](https://www.ruby-forum.com/t/time-format-conversions/174709/4 "2009-08-31T22:15:48Z")

</div>

Thanks Steve,

That worked perfectly.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [August 31, 2009, 11:11pm UTC](https://www.ruby-forum.com/t/time-format-conversions/174709/5 "2009-08-31T23:11:08Z")

</div>

Steve R. wrote:

> Oops.
> 
> $ gem install chronic  
> $ irb
> 
> > require ‘chronic’  
> > Chronic.parse(“3:00 PM”).strftime(’%H:%M:%S’)  
> > =\> “15:00:00”

The standard library ‘time’ parses this too:

require ‘time’  
puts Time.parse(“3:00 PM”).strftime(’%H:%M:%S’)  
=\> 15:00:00

hth,

Siep

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [September 1, 2009, 4:42am UTC](https://www.ruby-forum.com/t/time-format-conversions/174709/6 "2009-09-01T04:42:08Z")

</div>

Thanks again fellas.

---

<div class="post-metadata">

**Author:** ![elricstorm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/da6949/32.png) [@elricstorm](https://www.ruby-forum.com/u/elricstorm)\
**Post date:** [August 31, 2009, 11:20pm UTC](https://www.ruby-forum.com/t/time-format-conversions/174709/7 "2009-08-31T23:20:49Z")

</div>

At 2009-08-31 02:09PM, “s.ross” wrote:

> > “15:00:00”  
> > “22:00:00”  
> > “01:00:00”
> 
> $ gem install chronic  
> $ irb
> 
> > require ‘chronic’  
> > Chronic.parse(“3:00 PM”).strftime(’%H:%M:%S’)  
> > =\> “15:00:00”

Don’t need a gem, the ‘time’ package from the standard library will do:

```
require 'time'
new = Time.parse(old).strftime("%T")
```
