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 |