CONVDATE(1)

NAME
convdate - Convert to/from RFC 5322 dates and seconds since epoch

SYNOPSIS
convdate [-dhl] [-c | -n | -s] [date ...]

DESCRIPTION
convdate translates the date/time strings given on the command line, outputting the results one to a line. The input can either be a date in RFC 5322 format (accepting the variations on that format that innd(8) is willing to accept), or the number of seconds since epoch (if -c is given). The output is either ctime(3) results, the number of seconds since epoch, or a Usenet Date header field body, depending on the options given.

If date is not given, convdate outputs the current date.

OPTIONS

-c  Each argument is taken to be the number of seconds since epoch (a time_t) rather than a date.

-d  Output a valid Usenet Date header field body instead of the results of ctime(3) for each date given on the command line. This is useful for testing the algorithm used to generate Date header field bodies for local posts. Normally, the date will be in UTC, but see the -l option.

-h  Print usage information and exit.

-l  Only makes sense in combination with -d. If given, Date header field bodies generated will use the local time zone instead of UTC.

-n  Rather than outputting the results of ctime(3) or a Date header field body, output each date given as the number of seconds since epoch (a time_t). This option doesn't make sense in combination with -d.

-s  Pass each given date to the RFC 5322 date parser and print the results of ctime(3) (or a Date header field body if -d is given). This is the default behavior.

EXAMPLES
Most of these examples are taken, with modifications from the original manual page dating from 1991 and were run in the EST/EDT time zone.

    % convdate '10 Feb 1991 10:00:00 -0500'
    Sun Feb 10 10:00:00 1991

    % convdate '13 Dec 91 12:00 EST' '04 May 1990 0:0:0'
    Fri Dec 13 12:00:00 1991
    Fri May  4 00:00:00 1990

    % convdate -n '10 feb 1991 10:00' '4 May 90 12:00'
    666198000
    641880000

    % convdate -c 666198000
    Sun Feb 10 10:00:00 1991

ctime(3) results are in the local time zone. Compare to:

    % convdate -dc 666198000
    Sun, 10 Feb 1991 15:00:00 -0000 (UTC)

    % env TZ=America/Los_Angeles convdate -dlc 666198000
    Sun, 10 Feb 1991 07:00:00 -0800 (PST)

    % env TZ=America/New_York convdate -dlc 666198000
    Sun, 10 Feb 1991 10:00:00 -0500 (EST)

The system library functions generally use the environment variable TZ to determine (or at least override) the local time zone.

HISTORY
Written by Rich $alz <rsalz@uunet.uu.net>, rewritten and updated by Russ Allbery <eagle@eyrie.org> for the -d and -l flags.

SEE ALSO
active.times(5).