On 09/05/2026 00:50, Bruno Haible via GNU coreutils Bug Reports wrote:
That's too many lines to search for. As a user, typically I ask:
   1) I have a day to display; which directive can I use for it?
   2) I have a time to display; which directive can I use for it?

Accordingly, I suggest to split this table into several smaller ones,
namely one for each of:
   - literal characters,
   - date
   - time
   - date and time
   - time zone
   - nanosecond
(similar to what I did in gnulib/lib/strftime.h).

Sorry I should have confirmed the latest format currently committed,
which is as follows: (Also at https://pixelbeat.org/cu/date--help.txt
in case the following wraps).

cheers,
Padraig

$ src/date --help | sed -n '/^FORMAT  /,/%Z/p'
FORMAT  Example    Description

  %%    %           a literal %
  %n    \n          a newline
  %t    \t          a tab

  %C    20          century; like %Y, except omit last two digits
  %y    99          year (last two digits; 00..99)
  %Y    1999        year
  %g    99          year of ISO week number (last 2 digits; 00-99); see %G
  %G    1999        year of ISO week number; normally useful only with %V

  %a    Sun         locale's abbreviated weekday name
  %A    Sunday      locale's full weekday name
  %b    Mar         locale's abbreviated month name
  %h    Mar         same as %b
  %B    March       locale's full month name
  %m    12          month (01..12)
  %d    31          day of month (01..31)
  %e     1          day of month, space padded; same as %_d
  %D    12/31/99    date (ambiguous); same as %m/%d/%y
  %F    1999-12-31  full date; like %+4Y-%m-%d
  %x    12/31/99    locale's date (can be ambiguous)
  %c    ...         locale's date and time (e.g., Thu Mar  3 23:05 2005)

  %H    23          hour (00..23)
  %I    01          hour (01..12)
  %k     8          hour, space padded ( 0..23); same as %_H
  %l     9          hour, space padded ( 1..12); same as %_I
  %M    59          minute (00..59)
  %S    60          second (00..60)
  %N    123456789   nanoseconds (000000000..999999999)
  %s    1970010100  seconds since the Epoch (1970-01-01 00:00 UTC)
  %p    PM          locale's equivalent of AM or PM; blank if not known
  %P    am          like %p, but lower case
  %r    1:11:04 PM  locale's 12-hour clock time
  %R    23:59       24-hour hour and minute; same as %H:%M
  %T    23:59:59    time; same as %H:%M:%S
  %X    23:59:59    locale's time representation

  %j    365         day of year (001..366)
  %q    4           quarter of year (1..4)
  %u    7           day of week (1..7); 1 is Monday
  %w    6           day of week (0..6); 0 is Sunday
  %U    52          week of year; Sunday as first day of week (00..53)
  %V    52          ISO week number; Monday as first day of week (01..53)
  %W    52          week of year; Monday as first day of week (00..53)

  %z     +0400      +hhmm numeric time zone
  %:z    +04:00     +hh:mm numeric time zone
  %::z   +04:00:00  +hh:mm:ss numeric time zone
  %:::z  +04        numeric time zone to necessary precision; with :
  %Z     EDT        alphabetic time zone abbreviation




Reply via email to