Skip to content

Instantly share code, notes, and snippets.

@halloffame
Last active May 25, 2024 13:38
Show Gist options
  • Save halloffame/5350249 to your computer and use it in GitHub Desktop.
Save halloffame/5350249 to your computer and use it in GitHub Desktop.
Quick reference for ruby date format abbreviations.

Date

Year

%Y - Year with century (can be negative, 4 digits at least) -0001, 0000, 1995, 2009, 14292, etc.

  • %C - year / 100 (round down. 20 in 2009)
  • %y - year % 100 (00..99)

Month

%m - Month of the year, zero-padded (01..12)

  • %_m blank-padded ( 1..12)
  • %-m no-padded (1..12)

%B - The full month name ('January')

  • %^B uppercased ('JANUARY')

%b - The abbreviated month name ('Jan')

  • %^b uppercased ('JAN')
  • %h - Equivalent to %b

Day

%d - Day of the month, zero-padded (01..31) %-d no-padded (1..31)

%e - Day of the month, blank-padded ( 1..31)

%j - Day of the year (001..366)

Weekday:

%A - The full weekday name ('Sunday')

  • %^A uppercased ('SUNDAY')

%a - The abbreviated name ('Sun')

  • %^a uppercased ('SUN')

%u - Day of the week (Monday is 1, 1..7)

%w - Day of the week (Sunday is 0, 0..6)

Time

Hour

%H - Hour of the day, 24-hour clock, zero-padded (00..23)

%k - Hour of the day, 24-hour clock, blank-padded ( 0..23)

%I - Hour of the day, 12-hour clock, zero-padded (01..12)

%l - Hour of the day, 12-hour clock, blank-padded ( 1..12)

%P - Meridian indicator, lowercase ('am' or 'pm')

%p - Meridian indicator, uppercase ('AM' or 'PM'')

Minute

%M - Minute of the hour (00..59)

Second

%S - Second of the minute (00..59)

Subsecond

%L - Millisecond of the second (000..999)

%N - Fractional seconds digits, default is 9 digits (nanosecond)

  • %3N millisecond (3 digits)
  • %6N microsecond (6 digits)
  • %9N nanosecond (9 digits)
  • %12N picosecond (12 digits)

Time zone

%z - Time zone as hour and minute offset from UTC (e.g. +0900)

  • %:z - hour and minute offset from UTC with a colon (e.g. +09:00)
  • %::z - hour, minute and second offset from UTC (e.g. +09:00:00)
  • %:::z - hour, minute and second offset from UTC (e.g. +09, +09:30, +09:30:30)

%Z - Time zone abbreviation name

MISC

ISO 8601 week-based year and week number:

The week 1 of YYYY starts with a Monday and includes YYYY-01-04. The days in the year before the first week are in the last week of the previous year.

%G - The week-based year

%g - The last 2 digits of the week-based year (00..99)

%V - Week number of the week-based year (01..53)

Week number:

The week 1 of YYYY starts with a Sunday or Monday (according to %U or %W). The days in the year before the first week are in week 0.

%U - Week number of the year. The week starts with Sunday. (00..53)

%W - Week number of the year. The week starts with Monday. (00..53)

Seconds since the Unix Epoch:

%s - Number of seconds since 1970-01-01 00:00:00 UTC.

%Q - Number of microseconds since 1970-01-01 00:00:00 UTC.

Literal string:

%n - Newline character (\n)

%t - Tab character (\t)

%% - Literal '%' character

Combination:

%c - date and time (%a %b %e %T %Y)

%D - Date (%m/%d/%y)

  • %x - Same as %D

%F - The ISO 8601 date format (%Y-%m-%d)

%v - VMS date (%e-%b-%Y)

%r - 12-hour time (%I:%M:%S %p)

%R - 24-hour time (%H:%M)

%T - 24-hour time (%H:%M:%S)

  • %X - Same as %T

%+ - date(1) (%a %b %e %H:%M:%S %Z %Y)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment