bug#80974: Add Time conversion specifiers quick reference
Pádraig Brady <[email protected]> Sat, 9 May 2026 11:15:41 +0100
| Newsgroups | gmane.comp.gnu.core-utils.bugs |
|---|---|
| Message-ID | <[email protected]> |
On 09/05/2026 00:50, Bruno Haible via GNU coreutils Bug Reports wrote: > Pádraig Brady wrote: >> FORMAT Example Description >> >> %% % a literal % >> %a Sun locale's abbreviated weekday name >> %A Sunday locale's full weekday name >> %b Mar locale's abbreviated month name >> %B March locale's full month name >> %c '%a %x %X' locale's date and time >> %C 20 century; like %Y, except omit last two digits >> %d 01 day of month >> %D 12/31/99 date (ambiguous); same as %m/%d/%y >> %e 1 day of month, space padded; same as %_d >> %F 1999-12-31 full date; like %+4Y-%m-%d >> %g 99 year of ISO week number (last two digits; 00-99); see %G >> %G 1999 year of ISO week number; normally useful only with %V >> %h Mar same as %b >> %H 23 hour (00..23) >> %I 01 hour (01..12) >> %j 365 day of year (001..366) >> %k 8 hour, space padded ( 0..23); same as %_H >> %l 9 hour, space padded ( 1..12); same as %_I >> %m 12 month (01..12) >> %M 59 minute (00..59) >> %n \n a newline >> %N 123456789 nanoseconds (000000000..999999999) >> %p PM locale's equivalent of AM or PM; blank if not known >> %P pm like %p, but lower case >> %q 4 quarter of year (1..4) >> %r 1:11:04 PM locale's 12-hour clock time >> %R 23:59 24-hour hour and minute; same as %H:%M >> %s 1778169005 seconds since the Epoch (1970-01-01 00:00 UTC) >> %S 59 second (00..60) >> %t \t a tab >> %T 23:59:59 time; same as %H:%M:%S >> %u 7 day of week (1..7); 1 is Monday >> %U 52 week number 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 number of year; Monday as first day of week (00..53) >> %w 6 day of week (0..6); 0 is Sunday >> %x 12/31/99 locale's date (can be ambiguous) >> %X 23:59:59 locale's time representation >> %y 99 year (last two digits; 00..99) >> %Y 1999 year >> %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 > > 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). Yes I suppose alphabetic is arbitrary. I.e. users generally want to know "what letter corresponds to ...", not "what corresponds to letter .". cheers, Padraig