#! /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()))
