DATECONV(1) | User Commands | DATECONV(1) |
dateconv - Convert DATE/TIMEs between calendrical systems.
dateconv [OPTION]... [DATE/TIME]...
Convert DATE/TIMEs between calendrical systems. If DATE/TIME is omitted date/times are read from stdin.
DATE/TIME can also be one of the following specials
- `now' interpreted as the current (UTC) time stamp
- `time' the time part of the current (UTC) time stamp
- `today' the current date (according to UTC)
- `tomo[rrow]' tomorrow's date (according to UTC)
- `y[ester]day' yesterday's date (according to UTC)
Recognized OPTIONs:
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 12)
%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
Modifiers:
%O Modifier to turn decimal numbers into Roman numerals
%r Modifier to turn units into real units
%0 Modifier to turn on zero prefixes
%SPC Modifier to turn on space prefixes
%- Modifier to turn off prefixes altogether
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
matlab n/a
mdn 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.
$ dconv 2012-03-01
2012-03-01
$
$ dconv -i "%d/%b/%y" 01/Mar/12
2012-03-01
$
$ dconv -f "%d/%b/%y" 2012-03-01
01/Mar/12
$
$ dconv -f "%d/%b/%y" -i "%OY %Om %Od" "MCMXCVIII IX XVII"
17/Sep/98
$
$ dconv 12:03:01
12:03:01
$
$ dconv -i "%I:%M:%S %p" "11:22:33 PM"
23:22:33
$
$ dconv '2012-03-01 00:00:00'
2012-03-01T00:00:00
$
$ dconv 2012-03-01T12:34:56
2012-03-01T12:34:56
$
$ dconv --zone America/Chicago <<EOF
2012-03-01T07:05:06
2012-03-01T08:12:34
2012-03-11T01:05:06
2012-03-11T02:05:06
2012-03-11T07:05:06
2012-03-11T08:05:06
2012-03-11T17:05:06
EOF
2012-03-01T01:05:06
2012-03-01T02:12:34
2012-03-10T19:05:06
2012-03-10T20:05:06
2012-03-11T01:05:06
2012-03-11T03:05:06
2012-03-11T12:05:06
$
$ dconv --from-zone America/Chicago <<EOF
2012-03-01T01:05:06
2012-03-01T02:12:34
2012-03-10T19:05:06
2012-03-10T20:05:06
2012-03-11T01:05:06
2012-03-11T03:05:06
2012-03-11T12:05:06
EOF
2012-03-01T07:05:06
2012-03-01T08:12:34
2012-03-11T01:05:06
2012-03-11T02:05:06
2012-03-11T07:05:06
2012-03-11T08:05:06
2012-03-11T17:05:06
$
$ dconv --from-zone America/Chicago -z Europe/Berlin '2012-03-01 12:00' -i '%F %H:%M' -f '%F %T'
2012-03-01 19:00:00
$
Written by Sebastian Freundt <freundt@fresse.org>
Report bugs to: https://github.com/hroptatyr/dateutils/issues
The full documentation for dateconv is maintained as a Texinfo manual. If the info and dateconv programs are properly installed at your site, the command
should give you access to the complete manual.
February 2023 | dateutils 0.4.10 |