import locale class DateTime: def __init__(self, datetime): self.datetime = datetime def getEXIF(self): # TODO: timezone mojo return self.datetime.strftime("%Y:%m:%d %H:%M:%S") def getISO8601(self): # TODO: timezone mojo return self.datetime.strftime("%Y-%m-%dT%H:%M:%SZ") def getLocaleDateTime(self): return self.datetime.strftime(locale.nl_langinfo(locale.D_T_FMT)) def getLocaleDate(self): return self.datetime.strftime(locale.nl_langinfo(locale.D_FMT)) def getLocaleTime(self): return self.datetime.strftime(locale.nl_langinfo(locale.T_FMT)) def fromTimestamp(seconds): from datetime import datetime return DateTime(datetime.utcfromtimestamp(seconds)) def fromTuple(t): from datetime import datetime return DateTime(datetime.utcfromtimestamp(time.mktime(t))) def fromISO8601(s): import time try: return fromTimestamp(time.mktime(time.strptime(s, "%Y-%m-%dT%H:%M:%SZ"))) except ValueError: return fromTimestamp(time.mktime(time.strptime(s, "%Y-%m-%d"))) def fromEXIF(s): import time return fromTimestamp(time.mktime(time.strptime(s, "%Y:%m:%d %H:%M:%S"))) if __name__ == "__main__": def printAll(d): print d.getLocaleDateTime() print d.getLocaleDate() print d.getLocaleTime() print d.getEXIF() print d.getISO8601() import os.path printAll(fromTimestamp(os.path.getmtime(__file__))) printAll(fromEXIF("2005:01:06 12:14:42")) printAll(fromISO8601("2005-01-06T12:14:42Z"))