Table of Contents
date - print or set the system date and time
date [-u] [-d
datestr] [-s datestr] [--uct] [--universal] [--date=datestr] [--set=datestr] [--help]
[--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
This manual
page documents the GNU version of date. date with no arguments prints the
current time and date (in the format of the `%c' directive described below).
If given an argument that starts with a `+', it prints the current time
and date in a format controlled by that argument, which has the same format
as the format string passed to the `strftime' function. Except for directives
that start with `%', characters in that string are printed unchanged.
The
directives are:
- %
- a literal %
- n
- a newline
- t
- a horizontal tab
Time fields:
- %H
- hour (00..23)
- %I
- hour (01..12)
- %k
- hour ( 0..23)
- %l
- hour ( 1..12)
- %M
- minute
(00..59)
- %p
- locale's AM or PM
- %r
- time, 12-hour (hh:mm:ss [AP]M)
- %s
- seconds
since 00:00:00, Jan 1, 1970 (a nonstandard extension)
- %S
- second (00..61)
- %T
- time, 24-hour (hh:mm:ss)
- %X
- locale's time representation (%H:%M:%S)
- %Z
- time zone (e.g., EDT), or nothing if no time zone is determinable
Date fields:
- %a
- locale's abbreviated weekday name (Sun..Sat)
- %A
- locale's full weekday name,
variable length (Sunday..Saturday)
- %b
- locale's abbreviated month name (Jan..Dec)
- %B
- locale's full month name, variable length (January..December)
- %c
- locale's
date and time (Sat Nov 04 12:02:33 EST 1989)
- %d
- day of month (01..31)
- %D
- date (mm/dd/yy)
- %h
- same as %b
- %j
- day of year (001..366)
- %m
- month (01..12)
- %U
- week number of year with Sunday as first day of week (00..53)
- %w
- day
of week (0..6) with 0 corresponding to Sunday
- %W
- week number of year with
Monday as first day of week (00..53)
- %x
- locale's date representation (mm/dd/yy)
- %y
- last two digits of year (00..99)
- %Y
- year (1970...)
By default, date pads
numeric fields with zeroes. GNU date recognizes the following nonstandard
numeric modifiers:
- -
- (hyphen) do not pad the field
- _
- (underscore) pad the
field with spaces
If given an argument that does not start with `+', date
sets the system clock to the time and date specified by that argument.
The argument must consist entirely of digits, which have the following
meaning:
- MM
- month
- DD
- day within month
- hh
- hour
- mm
- minute
- CC
- first two digits
of year (optional)
- YY
- last two digits of year (optional)
- ss
- second (optional)
Only the superuser can set the system clock.
- -d datestr, --date datestr
- Display the time and date specified in datestr, which can be in almost
any common format. The display is in the default output format, or if
an argument starting with `+' is given to date, in the format specified
by that argument.
- --help
- Print a usage message on standard output and exit
successfully.
- -s datestr, --set datestr
- Set the time and date to datestr,
which can be in almost any common format. It can contain month names, timezones,
`am' and `pm', etc.
- -u, --universal
- Print or set the time and date in Universal
Coordinated Time (also known as Greenwich Mean Time) instead of in local
(wall clock) time.
- --version
- Print version information on standard output
then exit successfully.
To print the date of the day before yesterday
- date --date '2 days ago'
To print the date of the day three months and one
day hence
- date --date '3 months 1 day'
To print the day of year of Christmas
in the current year
- date --date '25 Dec' +%j
To print the current date in
a format including the full month name and the day of the month
- date '+%B
%d'
But this may not be what you want because for the first nine days
of the month, the `%d' expands to a zero-padded two-digit field, for example
`date -d 1-may '+%B %d'' will print `May 01'.
To print the same date but without
the leading zero for one-digit days of month, you can use the nonstandard
`-' modifier to suppress the padding altogether.
- date -d 1-may '+%B %-d'
Table of Contents