DATE(1L) manual page
NAME
date - print or set the system date and timeSYNOPSIS
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
DESCRIPTION
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 1970-01-01 00:00:00 UTC (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.
OPTIONS
- -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 Coordinated Universal Time (also known as Greenwich Mean Time) instead of in local (wall clock) time.
- --version
- Print version information on standard output then exit successfully.
EXAMPLES
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'