strptime man page

strptime — Parse input from stdin according to one of the given formats FORMATs.


strptime [OPTION]... [INPUT]...


Parse input from stdin according to one of the given formats FORMATs. The format string specifiers are the same as for strptime(3).

Recognized OPTIONs:

-h, --help
Print help and exit
-V, --version
Print version and exit
-t, --time
also display time in the output, default is to display the date
-q, --quiet
Suppress message about date/time and duration parser errors.
-f, --format=STRING
Output format. This can either be a specifier string (similar to strftime()'s FMT) or the name of a calendar.
-i, --input-format=STRING...
Input format, can be used multiple times. Each date/time will be passed to the input format parsers in the order they are given, if a date/time can be read successfully with a given input format specifier string, that value will be used.
-e, --backslash-escapes
Enable interpretation of backslash escapes in the output and input format specifier strings.
-S, --sed-mode
Copy parts from the input before and after a matching date/time. Note that all occurrences of date/times within a line will be processed.
-l, --locale
Make internal strptime(3) and strftime(3) behave in a locale dependent way, default is to pretend LC_ALL=C is in place.

Format Specs

Format specs in dateutils are similar to posix' strftime().

However, due to a broader range of supported calendars dateutils must employ different rules.

Date specs:

%a  The abbreviated weekday name
%A  The full weekday name
%_a The weekday name shortened to a single character (MTWRFAS)
%b  The abbreviated month name
%B  The full month name
%_b The month name shortened to a single character (FGHJKMNQUVXZ)
%c  The count of the weekday within the month (range 00 to 05)
%C  The count of the weekday within the year (range 00 to 53)
%d  The day of the month, 2 digits (range 00 to 31)
%D  The day of the year, 3 digits (range 000 to 366)
%F  Equivalent to %Y-%m-%d (ymd's canonical format)
%g  ISO week date year without the century (range 00 to 99)
%G  ISO week date year including the century
%j  Equivalent to %D
%m  The month in the current calendar (range 00 to 19)
%Q  The quarter of the year (range Q1 to Q4)
%q  The number of the quarter (range 01 to 04)
%s  The number of seconds since the Epoch.
%u  The weekday as number (range 01 to 07, Sunday being 07)
%U  The week count,  day of week is Sun (range 00 to 53)
%V  The ISO week count,  day of week is Mon (range 01 to 53)
%w  The weekday as number (range 00 to 06, Sunday being 00)
%W  The week count,  day of week is Mon (range 00 to 53)
%y  The year without a century (range 00 to 99)
%Y  The year including the century
%_y The year shortened to a single digit
%Z  The zone offset in hours and minutes (HH:MM) with
    a preceding sign (+ for offsets east of UTC, - for offsets
    west of UTC)
%Od The day as roman numerals
%Om The month as roman numerals
%Oy The two digit year as roman numerals
%OY The year including the century as roman numerals
%rs In time systems whose Epoch is different from the unix Epoch, this
    selects the number of seconds since then.
%rY In calendars with years that don't coincide with the Gregorian
    years, this selects the calendar's year.
%dth  The day of the month as an ordinal number, 1st, 2nd, 3rd, etc.
%mth  The month of the year as an ordinal number, 1st, 2nd, 3rd, etc.
%db The business day of the month (since last month's ultimo)
%dB Number of business days until this month's ultimo

Time specs:

%H  The hour of the day using a 24h clock, 2 digits (range 00 to 23)
%I  The hour of the day using a 12h clock, 2 digits (range 01 to 12)
%M  The minute (range 00 to 59)
%N  The nanoseconds (range 000000000 to 999999999)
%p  The string AM or PM, noon is PM and midnight is AM.
%P  Like %p but in lowercase
%S  The  (range 00 to 60, 60 is for leap seconds)
%T  Equivalent to %H:%M:%S

General specs:

%n  A newline character
%t  A tab character
%%  A literal % character


%O  Modifier to turn decimal numbers into Roman numerals
%r  Modifier to turn units into real units
th  Suffix, read and print ordinal numbers
b   Suffix, treat days as business days

By design dates before 1601-01-01 are not supported.

For conformity here is a list of calendar designators and their corresponding format string:

ymd     %Y-%m-%d
ymcw    %Y-%m-%c-%w
ywd     %rY-W%V-%u
bizda   %Y-%m-%db
lilian     n/a
ldn        n/a
julian     n/a
jdn        n/a

These designators can be used as output format string, moreover, @code{lilian}/@code{ldn} and @code{julian}/@code{jdn} can also be used as input format string.


$ strptime -i '%a, %b-%d/%Y' 'Mon, May-01/2000'
$ strptime -i '%a, %b-%d/%Y' <<EOF
Mon, May-01/2000
Mon, Mar-2/2000


Written by Sebastian Freundt <freundt@fresse.org>

Reporting Bugs

Report bugs to: https://github.com/hroptatyr/dateutils/…

Referenced By


Explore man page connections for strptime(1).

dateutils 0.4.0 May 2016