date will print the date and time on the standard output. Following are some useful options with the
- Seconds since UNIX epoch (01/01/1970)
%s to get number of seconds passed since UNIX epoch. Creating unique file names is one of the possible use case.
# + is use for formatting date +%s # Output: 1589455968
- Number of days since the year's beginning
%j to get the number of days passed since the beginning of the year.
# + is use for formatting date +%j # Output: 135
- Dates in the past or future
--date option to get any date in the past or future.
# + is use for formatting date +%F -d "1 day ago" # Output: 2020-05-13 # More easily by using - sign date +%F -d "-1 day" # Output: 2020-05-13 date +"%D %T" -d "1 year ago" # Output: 05/14/19 16:54:02 date +"%F" --date="1 month ago" # Output: 2020-04-14 # For dates in future use + sign before number date +%F -d "+1 day" # Output: 2020-05-15
- Get Time Zone
%Z option to get your time zone
# + is use for formatting date +%Z # Output: PKT
- Get date from UNIX epoch
To extract date from the number of seconds passed since UNIX epoch, use
date -d @1500000000 # Output: Fri 14 Jul 07:40:00 PKT 2017
- Get date in ISO Format
-Iseconds option to get current date in ISO Format.
date -Iseconds # Output: 2020-05-14T17:18:22+05:00
- Get the last day of the previous month
While executing an SQL command to retrieve data for the starting and ending date of the previous month, it is always a point of concern to correctly determine whether the previous month was of 30 or 31 days. To resolve this issue, we can use
date in the option argument of
date command with
%d option to get the current day of the month.
# + is use for formatting # %d is used to get the day of the month date +%F -d "$(date +%d) days ago" # Output: 2020-04-30
I hope it will help you. Keep coding!
P.S. I will keep on adding to this post with time.