# Date Time format in Ruby

**URL:** <https://www.ruby-forum.com/t/date-time-format-in-ruby/166065>\
**Category:** Rails\
**Created:** [April 21, 2009, 3:26pm UTC](https://www.ruby-forum.com/t/date-time-format-in-ruby/166065 "2009-04-21T15:26:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![nike](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/dbc845/32.png) [@nike](https://www.ruby-forum.com/u/nike)\
**Post date:** [April 21, 2009, 3:26pm UTC](https://www.ruby-forum.com/t/date-time-format-in-ruby/166065/1 "2009-04-21T15:26:04Z")

</div>

Can anyone give a suggestion so that i can able to format the date as  
like this 3th - 5th June 2009

---

<div class="post-metadata">

**Author:** ![nike](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/dbc845/32.png) [@nike](https://www.ruby-forum.com/u/nike)\
**Post date:** [April 21, 2009, 5:06pm UTC](https://www.ruby-forum.com/t/date-time-format-in-ruby/166065/2 "2009-04-21T17:06:20Z")

</div>

On Apr 21, 2009, at 9:26 AM, Nike M. wrote:

> ## Can anyone give a suggestion so that i can able to format the date as like this 3th - 5th June 2009

irb\> require ‘date’  
=\> []  
irb\> Date::MONTHNAMES  
=\> [nil, “January”, “February”, “March”, “April”, “May”, “June”,  
“July”, “August”, “September”, “October”, “November”, “December”]  
irb\> myformat = lambda {|date| “%s %s %d”%[date.mday.ordinalize,  
Date::MONTHNAMES[date.month], date.year] }  
=\> #Proc:0x00007ff7862efcb8@:7(irb)  
irb\> myformat[Date.today]  
=\> “21st April 2009”

That ought to be enough of a suggestion! Note that this is inside a  
Rails console so if you did this in plain Ruby, you’d have to require  
‘rubygems’ and require ‘activesupport’ to get Fixnum#ordinalize

-Rob

Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![nike](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/dbc845/32.png) [@nike](https://www.ruby-forum.com/u/nike)\
**Post date:** [April 22, 2009, 10:16am UTC](https://www.ruby-forum.com/t/date-time-format-in-ruby/166065/3 "2009-04-22T10:16:59Z")

</div>

Rob B. wrote:

> On Apr 21, 2009, at 9:26 AM, Nike M. wrote:
> 
> > ## Can anyone give a suggestion so that i can able to format the date as like this 3th - 5th June 2009
> 
> irb\> require ‘date’  
> =\> []  
> irb\> Date::MONTHNAMES  
> =\> [nil, “January”, “February”, “March”, “April”, “May”, “June”,  
> “July”, “August”, “September”, “October”, “November”, “December”]  
> irb\> myformat = lambda {|date| “%s %s %d”%[date.mday.ordinalize,  
> Date::MONTHNAMES[date.month], date.year] }  
> =\> #Proc:0x00007ff7862efcb8@:7(irb)  
> irb\> myformat[Date.today]  
> =\> “21st April 2009”
> 
> That ought to be enough of a suggestion! Note that this is inside a  
> Rails console so if you did this in plain Ruby, you’d have to require  
> ‘rubygems’ and require ‘activesupport’ to get Fixnum#ordinalize
> 
> -Rob
> 
> Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
> removed\_email\_address@domain.invalid

Or you could use Date.today.strftime(“%d %m %Y”), though you wouldn’t  
get the extension (‘st’). Use a simple case statement on the last digit  
if you can’t or won’t use ActiveSupport.
