strftime() turns a Date or DateTime into nicely formatted output. The following table shows the code you can use to create a nicely formatted date
>> x = DateTime.new(2009,9,5,15,45,50)
=> Sat, 05 Sep 2009 15:45:50 +0000
=> Sat, 05 Sep 2009 15:45:50 +0000
The default is %F which is the same as writing this.
>> x.strftime(‘%F’)
=> “2009-09-05”
=> “2009-09-05”
Current timestamp with milliseconds.
 #{DateTime.now.strftime(‘%Y-%m-%d %H:%M:%S + %L’)}
There appears to be no way in Ruby to get the month without a leading zero. This is one of the stupidest omissions I’ve ever seen as a programmer. This works fine though:
x.strftime(“%m”).to_i
| Letter | Output | Example | 
|---|---|---|
| %A | full day of week | Monday | 
| %a | abbrev day of week | Mon | 
| %B | full month name | September | 
| %b | abbrev month name | Sep | 
| %C | century (first two digits of year) | 20 | 
| %c | Day, month, time. year | Mon Sep 5 15:45:50 2009 | 
| %D | western format with slashes | 09/21/09 | 
| %d | day of month (zero-padded) | 05 | 
| %e | day of month (space-padded) | 5 | 
| %F | Year-month-day (with dash) | 2009-09-05 | 
| %G | 4-digit year | 2009 | 
| %g | 2-digit year | 09 | 
| %H | Hour (24 hour format) | 15 | 
| %h | abbrev month | Sep | 
| %I | hour (12 hour format) | 03 | 
| %j | day of year (number of days since Jan 1) | 248 | 
| %k | hour (24 hour format) | 15 | 
| %l | hour (12 hour format space padded) | 3 | 
| %M | minute | 45 | 
| %m | month (zero padded) | 09 | 
| %n | newline | |
| %P | am or pm (lowercase) | pm | 
| %p | AM or PM (uppercase) | PM | 
| %Q | milli-seconds since unix epoch (Jan 1 1970) | |
| %R | hour:minute | 15:45 | 
| %r | hour:minute:second AM/PM | 03:45:50 PM | 
| %S | seconds | 50 | 
| %s | seconds since unix epoch (Jan 1 1970) | 1252165550 | 
| %u | weekday as a decimal number | 6 | 
| %U | week number of the current year as a decimal number, starting with the first Sunday as the first day of the first week | 35 | 
| %V | The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week.  | 
36 | 
| %W | week number of the current year as a decimal number, starting with the first Monday as the first day of the first week | 35 | 
| %w | day of the week as a decimal, Sunday being 0 | 6 | 
| %x | preferred date representation for the current locale without the time | 09/05/09 | 
| %X | preferred time representation for the current locale without the date | 15:45:50 | 
| %y | year as a decimal number without a century (range 00 to 99) | 09 | 
| %Y | year as a decimal number including the century | 2009 | 
| %Z | time zone or name or abbreviation | +00:00 | 
| %z | timezone offset | +0000 | 
| %% | literal `%’ character | % | 
| %L | millisecond | 
Your article helped me a lot, is there any more related content? Thanks!
Your article helped me a lot, is there any more related content? Thanks!