a command-line utility to show date in multiple time zones based on environment variables
go get -u -v -ldflags="-s -w" github.com/tanakapayam/mtzdate
export MTZDATE_TIMEZONES='San Francisco:America/Los_Angeles,UTC,München:Europe/Berlin,काठमाडौं:Asia/Kathmandu,東京:Asia/Tokyo'
export MTZDATE_FLAGS='San Francisco:US,München:DE,काठमाडौं:NP,東京:JP'
export MTZDATE_WORKDAYS='Mon,Tue,Wed,Thu,Fri'
export MTZDATE_GREEN_HOURS='8-17'
export MTZDATE_YELLOW_HOURS='7-8,17-18'
export MTZDATE_FAINT_HOURS='0-7,22-24'
export MTZDATE_FORMAT='dfc'
One time:
mtzdate
Loop (^C to break):
mtzdate --loop
Usage:
mtzdate (-h | --version)
mtzdate
mtzdate --loop
Description
This command-line utility displays Unix date in multiple time zones
based on environment variables.
With MTZDATE_LOOP=1 or --loop, mtzdate will refresh the screen once a second.
Control-C will break the loop.
Options:
-h, --help
-l, --loop # Loop until Control-C is trapped
--version
Installation
go get -u -v -ldflags="-s -w" github.com/tanakapayam/mtzdate
Environment
Set MTZDATE_TIMEZONES to a comma-separated list of time zones. If desired, preface each time zone with a
UTF-8-encoded city name or alias and a colon.
To see emoji flags, set MTZDATE_FLAGS to a comma-separated map of UTF-8-encoded city names or aliases
followd by two-letter country code -- separated by a colon.
mtzdate defaults to coloring workhours green and to coloring pre- and post-workhours yellow. The behavior
is controlled by the following environment variables (with their default values):
export MTZDATE_WORKDAYS='Mon,Tue,Wed,Thu,Fri'
export MTZDATE_GREEN_HOURS='8-17'
export MTZDATE_YELLOW_HOURS='7-8,17-18'
To opt out of the feature, set MTZDATE_WORKDAYS='':
export MTZDATE_WORKDAYS=''
MTZDATE_FORMAT can be set to a sequence of "d" (date), "f" (flag) and "c" (city) to signify the display
format. (If unset, "dfc" is assumed.) Naturally, it's most meaningful if it's three letters, but there
are no restrictions.
Examples
$ export MTZDATE_TIMEZONES='America/Chicago,Europe/Paris'
$ export MTZDATE_FLAGS='Chicago:US,Paris:FR'
$ date
Sun Jul 29 18:10:33 PDT 2018
$ mtzdate
Sun Jul 29 20:10:33 CDT 🇺🇸 Chicago
Mon Jul 30 03:10:33 CEST 🇫🇷 Paris
$ export MTZDATE_TIMEZONES='San Francisco:America/Los_Angeles,UTC,München:Europe/Berlin,काठमाडौं:Asia/Kathmandu,東京:Asia/Tokyo'
$ export MTZDATE_FLAGS='San Francisco:US,München:DE,काठमाडौं:NP,東京:JP'
$ mtzdate
Sun Jul 29 18:10:33 PDT 🇺🇸 San Francisco
Mon Jul 30 01:10:33 UTC ☁️
Mon Jul 30 03:10:33 CEST 🇩🇪 München
Mon Jul 30 06:55:33 +0545 🇳🇵 काठमाडौं
Mon Jul 30 10:10:33 JST 🇯🇵 東京
$ export MTZDATE_FORMAT='fd'
$ mtzdate
🇺🇸 Sun Jul 29 18:10:33 PDT
☁️ Mon Jul 30 01:10:33 UTC
🇩🇪 Mon Jul 30 03:10:33 CEST
🇳🇵 Mon Jul 30 06:55:33 +0545
🇯🇵 Mon Jul 30 10:10:33 JST
See Also
/usr/share/zoneinfo
https://github.com/tanakapayam/mtzdate
go version go1.10.3 darwin/amd64
make docker-build
docker pull tanakapayam/mtzdate
One time:
docker run \
--env MTZDATE_FLAGS='San Francisco:US,München:DE,काठमाडौं:NP,東京:JP' \
--env MTZDATE_TIMEZONES='San Francisco:America/Los_Angeles,UTC,München:Europe/Berlin,काठमाडौं:Asia/Kathmandu,東京:Asia/Tokyo' \
--tty \
tanakapayam/mtzdate
Loop (^C to break):
docker run \
--env MTZDATE_LOOP=1 \
--env MTZDATE_FLAGS='San Francisco:US,München:DE,काठमाडौं:NP,東京:JP' \
--env MTZDATE_TIMEZONES='San Francisco:America/Los_Angeles,UTC,München:Europe/Berlin,काठमाडौं:Asia/Kathmandu,東京:Asia/Tokyo' \
--interactive \
--tty \
tanakapayam/mtzdate
World Time Zones:
ISO Country Codes and Flag Emoji: