Created
October 12, 2022 12:58
-
-
Save reagle/499355b362bb43cf73285c2fc0f78f5a to your computer and use it in GitHub Desktop.
Revisions
-
reagle created this gist
Oct 12, 2022 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,52 @@ #!/usr/bin/env python3 # Print world clock in terminal # (c) Copyright 2022 by Joseph Reagle # Licensed under the GPLv3, see <http://www.gnu.org/licenses/gpl-3.0.html> # # replacing: https://superuser.com/questions/164339/timezone-conversion-by-command-line import argparse # http://docs.python.org/dev/library/argparse.html import sys import pendulum # https://pendulum.eustace.io/docs/ my_tz = "America/New_York" my_start = pendulum.parse("8:00", tz=my_tz) # start of day in 24 HH my_end = pendulum.parse("18:00", tz=my_tz) # end of day in 24 HH arg_parser = argparse.ArgumentParser(description="Print world clock in terminal") arg_parser.add_argument("time", nargs="?", metavar="TIME", help="target time to show") args = arg_parser.parse_args(sys.argv[1:]) if args.time: args.time = pendulum.parse(args.time, tz=my_tz) else: args.time = pendulum.now(my_tz) # zones of interest target_zones = [ "Asia/Calcutta", "Etc/UTC", "Europe/London", "America/New_York", "America/Chicago", "America/Denver", "America/Los_Angeles", ] for zone in target_zones: zone_time = args.time.in_timezone(zone) highlight = "\033[4m" if zone == my_tz else "\033[0m" print( f"{highlight}{zone:<20} {zone_time.strftime('%b-%d')}" + f" {zone_time.strftime('%H:%M%p | %z')}", end=" || ", ) counter = my_start while counter <= my_end: counter_in_tz = counter.in_timezone(zone) print(f"{counter_in_tz.format('HH')} ", end="") counter = counter.add(hours=1) print()