DateAndTime

  • Never forget there are two dates at all times!
  • Standards
    • ICS iCalendar format
      • iCal Timezone Working Example small
        BEGIN:VCALENDAR
        VERSION:2.0
        PRODID:-//x.io//Events
        CALSCALE:GREGORIAN
        BEGIN:VEVENT
        UID:20210819T170546Z-1750954998@x.io
        DTSTART;TZID=America/New_York:20210825T150000
        DTEND;TZID=America/New_York:20210825T153000
        SUMMARY:Interview
        URL:https://zoom-link.com
        DESCRIPTION:interview desc
        LOCATION:zoom
        END:VEVENT
        END:VCALENDAR
  • Convert from one TZ to another
    TZ="UTC"                 date --date='TZ="America/Los_Angeles" 2014-09-21 22:00:06' '+%Y-%m-%d %T' # linux
    TZ="America/Los_Angeles" date --date='TZ="UTC" 2014-09-21 22:00:06' '+%Y-%m-%d %T'                 # linux
    TZ="America/Denver"      date --date='TZ="UTC" 00:00:00' '+%Y-%m-%d %T'                            # linux
    date -j -f "%m-%d-%Y %H:%M:%S %Z" "12-02-2013 23:00:00 America/Los_Angeles" "+%m-%d-%Y %H:%M:%S"   # mac
  • Date to ms
    date --date='TZ="America/Los_Angeles" 2014-09-21 23:00:00' '+%s000'               # linux
    TZ="America/Los_Angeles" date -j -f "%Y-%m-%d %T" "2014-03-12 23:00:00" "+%s000"  # mac
  • ms to Date
    TZ="America/Los_Angeles" date -r `expr 1366727538749 '/' 1000`  # mac
    
    date --date=@<seconds> # linux
    date -d @1620324590
    
    # mac
    TZ=America/Los_Angeles date -r 1390948560
    TZ=America/Denver      date -r 1390948560
    TZ=UTC                 date -r 1390948560
  • date formatting
    # linux or mac
    TZ=America/Los_Angeles date '+%FT%T%z'
    
    # Add/Sub days
    date -d -30days '+%Y%m%d%H%M%S' # linux
    
    # mysql client Only works on Linux
    SET time_zone = 'America/Los_Angeles';