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