yest(1) - Linux man page
Name
yest - date manipulation utility.
Synopsis
yest --help
yest --license
yest --version
yest [--idf=str] [[-|+]adjust[d|h|m]] [date] [format-string]
Description
This is called "yest" because the default is to output yesterday´s date. This utility knows about leap year, daylight savings time, and such variations.
This utility adds or subtracts days, hours, and/or minutes from a given date, and outputs the results in the specified format.
The default, if no adjustment is specified, is "-1d" (subtract one day).
Yest supports most date(1) format codes as well as a few of its own.
Options
- --help
Display help information.
- --license
- Display license information.
- --version
- Display version information.
- --input-date-format=str
--idf=str - Specify the default format for date input. The str identifier may be:
- If the format can be determined by the data, it will be. The default format will only be used for ambiguous dates, such as "02/03/04".
Parameters
(Note that the order of the parameters is not important.)
- If the format can be determined by the data, it will be. The default format will only be used for ambiguous dates, such as "02/03/04".
- adjustment
- The adjustment can be any of the following:
- [-|+]day-time
Day, hour and minute adjustment specification in the format "[-|+]day-hour:minute". For example: "+4-12:00".
- [-|+]intd
Explicit day adjustment amount.
- [-|+]inth
Explicit hour adjustment amount.
- [-|+]intm
Explicit minute adjustment amount.
- You can specify a combination of day, hour and minute adjustments. For example: "yest +3d -2h"
If no adjustment is specified, the default is "-1d".
- date
Date to be altered. Default is today, current hour, minute and second. date should be specified in ISO date format:
"yyyy-mm-dd"
- Hours and minutes may be included:
- "yyyy-mm-ddThh"
(date + hour)
"yyyy-mm-ddThh:mi"
(date + hour and minute)
(Note that the "T" before the time is a literal 'T')
- Other date formats recognized are:
- epoch seconds
(seconds since 1/1/1970)
"dd/mm/yyyy"
or "mm/dd/yyyy"
(if LANG="en_US*")
- Hours and minutes may be included as follows:
- "dd/mm/yyyy-hh"
(date + hour)
"dd/mm/yyyy-hh:mi"
(date + hour and minute)
- If you specify a date but no time, the time output fields will, of course, be zero. Currently, {date} must be between January 1, 1970 and January 18, 2038.
- "yyyy-mm-ddThh"
- format-string
- String containing date output codes and, optionally, other text. Any text in the format-string that is not a recognized output code is passed through
unchanged. This includes the "%" character if it is not followed by a recognized format character. For compatability with date(1), a leading "+"
character in the format-string will be ignored.
- If there are spaces or special characters in the string, it must be quoted. The program will recognize most echo-like escape conventions such as "\n" (newline) and "\t" (tab) in format-string, and octal escapes (\0nn) are supported.
If only a day adjustment is specified, the default format-string is "%x". If adjustment includes a time element, the default format-string becomes "%x-%R".
- If there are spaces or special characters in the string, it must be quoted. The program will recognize most echo-like escape conventions such as "\n" (newline) and "\t" (tab) in format-string, and octal escapes (\0nn) are supported.
Adjustment specifications
Note that the sign ('+' or '-') is required, but any field in the adjustment specification is optional. If any of the numbers are missing, they default to zero. If the unit specification is missing, it defaults to "d". The program can figure out the full specification given enough syntax. For example:
-
Output format string specification
Format codes:
- %a
Abbreviated day of week ("Tue")
%A
Full day of week ("Tuesday")
%b
Month name abbreviated to 3 chars ("Oct")
%B
Full month name ("October")
%c
Equivalent to "%a %b %e %R %Z %Y"
%C
Century ("19")
%d
Day of month ("13")
%D
Equivalent to "%d/%m/%y" ("%m/%d/%y" US)
%e
Equivalent to "% d" (pad with space)
%f
Equivalent to "%A, %B %-dth, %Y - %I:%M:%S %P"
%F
Equivalent to "%Y-%m-%d"
%h
Equivalent to "%b"
%H
Hour (24 hour)
%I
Hour (12 hour)
%j
Day of year ("123")
%k
Equivalent to "% H" (pad with space)
%l
Equivalent to "% I" (pad with space)
%L
Last day of month
%m
Month number ("10")
%M
Minute
%n
Equivalent to "\n" (newline).
%p
"AM" or "PM" for the hour
%P
"am" or "pm" for the hour
%q
"1" if daylight savings time is active, "0" if not.
%r
Equivalent to "%I:%M:%S %p"
%R
Equivalent to "%H:%M"
%s
Number of seconds since 01/01/1970-00:00.
%S
Seconds.
%t
Equivalent to "\t" (tab).
%T
Equivalent to "%H:%M:%S"
%u
Numeric day of week: 1-7 (1=Monday).
%w
Numeric day of week: 0-6 (0=Sunday).
%x
Equivalent to "%d/%m/%Y" ("%m/%d/%Y" US)
%X
Equivalent to "%H:%M:%S"
%Y
Full year, including century ("1989")
%y
Year of century ("89")
%z
Equivalent to "%d/%m/%y" ("%m/%d/%y" US) (no century)
%Z
Time zone ("PST")
%%
The "%" character
Code prefixes ("-", "_"):
- By default, yest pads numeric fields with zeroes like date(1). It also recognizes the following modifiers between % and a numeric directive:
- ´-´ (hyphen) do not pad the field (i.e. "%-d")
´_´ (underscore) pad the field with spaces (i.e. "% m") - ´-´ (hyphen) do not pad the field (i.e. "%-d")
Code prefix ("^"):
- Yest also recognizes the '^' (caret) string modifier to use uppercase, if possible (i.e. "%^B").
Code suffix "th":
- Numeric format fields may be followed with the modifier "th" (for example: "%dth"). This appends "st", "nd", "rd", or "th", as appropriate, to the number.
Examples
Assuming the current date and time are:
- $ date
Tue May 9 21:09:07 EDT 2006 - Display yesterday´s date in the default format.
- $ yest
05/08/2006 - Generate the name of the sar file for 14 days ago:
- $ SARFILE=/var/adm/sa/sa`yest -14 %d`
$ echo $SARFILE
/var/adm/sa/sa25 - Calculate the date an arbitrary number of days from a specified date and display it with an extensive format:
- $ COUNT=+4 $ yest "The date is:\n\tThe %dth day of %B, %Y" 1988-12-28 $COUNT The date is:
The 1st day of January, 1989 - Display the date and time (default format) of three hours ago:
- $ yest -3h
05/09/2006-18:09
Author
Written by Kimball Hawkins
See Also
date (1)
