From 5bff9610958e69662f144a513394047154be4399 Mon Sep 17 00:00:00 2001 From: Martin Sekera Date: Tue, 5 Jan 2021 13:36:51 +0100 Subject: [PATCH] add t2t script --- bin/t2t | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 bin/t2t diff --git a/bin/t2t b/bin/t2t new file mode 100755 index 0000000..ef290ac --- /dev/null +++ b/bin/t2t @@ -0,0 +1,65 @@ +#! /usr/bin/env python3 +# encoding: utf-8 + +usage = """ +Converts between various subsets of ISO 8601 datetimes and unix timestamps. + +Usage: + +→ current unix time +$ t2t +1609849499 + +→ convert unix time to ISO 8601 +$ t2t 590055912 +1988-09-12 10:25:12 + +→ convert ISO 8601 subsets into unix time +$ t2t 1988-09-12 +590018400 + +$ t2t 1988-09-12 10:25 +590055900 + +$ t2t 1988-09-12 10:25:12 +590055912 +""".strip() + +import sys +import datetime + +targets = sys.argv[1:] +l = len(targets) + +if l == 0: + # no args + D = datetime.datetime.now() + print(int(D.timestamp())) + +elif l == 1: + if targets[0].isdigit(): + # time_t to dt + D = datetime.datetime.fromtimestamp(int(targets[0])) + print(D.strftime("%Y-%m-%d %H:%M:%S")) + else: + try: + D = datetime.datetime.strptime(targets[0], "%Y-%m-%d") + except ValueError: + print(usage) + sys.exit(1) + + print(int(D.timestamp())) + +elif l == 2: + if targets[1].count(":") == 2: + fmt = "%Y-%m-%d %H:%M:%S" + else: + fmt = "%Y-%m-%d %H:%M" + + try: + D = datetime.datetime.strptime(" ".join(targets), fmt) + except ValueError: + print(usage) + sys.exit(1) + + print(int(D.timestamp()))