date
I always forget the arguments to date.
Seconds since UNIX epoch
date +%s
Today's date yyyy-mm-dd
$ date -I
2019-07-23
$ date +'%Y-%m-%d'
2019-07-23
Next week's date
Use the -d flag
$ date -d '+1week'
Tue 30 Jul 14:50:03 AEST 2019
Convert local time to UTC
$ TZ=UTC date -d 'TZ="Australia/Sydney" 24 Jun 19 11:45 PM'
Mon 24 Jun 13:45:00 UTC 2019
Difference between two dates
$ START=$(date -d 'TZ="Australia/Sydney" 24 Jun 19 23:45' +'%s')
$ END=$(date -d 'TZ="Australia/Sydney" 25 Jun 19 02:55' +'%s')
# Number of hours between $END and $START
$ echo "scale=2;($END-$START)/3600" | bc
3.16