# 3.5.2 Date formats

The current supported timestamp print modes are:

     F : windows filetime        8 bytes
     t : unix timestamp          4 bytes
     T : dos timestamp           4 bytes

For example, you can 'view' the current buffer as timestamps in dos, unix or windows filetime formats:

    [0x08048000]> eval cfg.bigendian = 0
    [0x08048000]> pt 4
    30:08:2037 12:25:42 +0000

    [0x08048000]> eval cfg.bigendian = 1
    [0x08048000]> pt 4
    17:05:2007 12:07:27 +0000

As you can see, the endianness affects to the print formats. Once printing these filetimes you can grep the results by the year for example:

    [0x08048000]> pt | grep 1974 | wc -l
    15
    [0x08048000]> pt | grep 2022
    27:04:2022 16:15:43 +0000

The date format printed can be configured with the 'cfg.datefmt' variable following the `strftime(3)` format.

Extracted from the strftime(3) manpage:

     %a  The abbreviated weekday name according to the current locale.
     %A  The full weekday name according to the current locale.
     %b  The abbreviated month name according to the current locale.
     %B  The full month name according to the current locale.
     %c  The preferred date and time representation for the current locale.
     %C  The century number (year/100) as a 2-digit integer. (SU)
     %d  The day of the month as a decimal number (range 01 to 31).
     %e  Like %d, the day of the month as a decimal number, leading spaces
     %E  Modifier: use alternative format, see below. (SU)
     %F  Equivalent to %Y-%m-%d (the ISO 8601 date format). (C99)
     %g  Like %G, but without century, that is, with a 2-digit year (00-99). (TZ)
     %h  Equivalent to %b.  (SU)
     %H  The hour as a decimal number using a 24-hour clock (range 00 to 23).
     %I  The hour as a decimal number using a 12-hour clock (range 01 to 12).
     %j  The day of the year as a decimal number (range 001 to 366).
     %k  The hour (24-hour clock) as a decimal number (range 0 to 23);
     %l  The hour (12-hour clock) as a decimal number (range 1 to 12);
     %m  The month as a decimal number (range 01 to 12).
     %M  The minute as a decimal number (range 00 to 59).
     %n  A newline character. (SU)
     %O  Modifier: use alternative format, see below. (SU)
     %p  Either ���AM��� or ���PM���
     %P  Like %p but in lowercase: ���am��� or ���pm���
     %r  The time in a.m. or p.m. notation.  In the POSIX this is to %I:%M:%S %p.  (SU)
     %R  The time in 24-hour notation (%H:%M). (SU) For seconds, see %T below.
     %s  The number of seconds since the Epoch (1970-01-01 00:00:00 UTC). (TZ)
     %S  The second as a decimal number (range 00 to 60).
     %t  A tab character. (SU)
     %T  The time in 24-hour notation (%H:%M:%S). (SU)
     %u  The day of the week as a decimal, range 1 to 7, Monday being 1. See also %w.  (SU)
     %w  The day of the week as a decimal, range 0 to 6, Sunday being 0.  See also %u.
     %W  The week number of the current year as a decimal number, range 00 to 53.
     %x  The preferred date representation for the current locale without the time.
     %X  The preferred time representation for the current locale without the date.
     %y  The year as a decimal number without a century (range 00 to 99).
     %Y  The year as a decimal number including the century.
     %z  The time-zone as hour offset from GMT.  (using "%a, %d %b %Y %H:%M:%S %z"). (GNU)
     %Z  The time zone or name or abbreviation.
     %+  The date and time in date(1) format. (TZ) (Not supported in glibc2.)
     %%  A literal ���%��� character.