Convert integer date format to human readable format
我有一个日期时间格式,其中日期表示为1/1/1900的整数。
例如:1是1/1 / 1900,42998是20/9/2017。
如何将这种格式转换为人类可读的格式,例如dd / mm / yyyy?我检查了日期时间文档,但找不到任何方法。我想在python 3或2.7上执行此操作。
谢谢您的任何建议。
您可以将日期定义为相对于基准时间的偏移量,并构造一个日期时间:
1 2 3 4 5 | In[22]: import datetime as dt dt.datetime(1900,1,1) + dt.timedelta(42998) Out[22]: datetime.datetime(2017, 9, 22, 0, 0) |
一旦它是一个
1 2 3 4 | In[24]: (dt.datetime(1900,1,1) + dt.timedelta(42998-1)).strftime('%d/%m/%Y') Out[24]: '21/09/2017' |
因此您可以定义用户函数来执行此操作:
1 2 3 4 5 6 7 | In[27]: def dtToStr(val): base = dt.datetime(1900,1,1) return (base + dt.timedelta(val-1)).strftime('%d/%m/%Y') dtToStr(42998) Out[27]: '21/09/2017' |
1 2 3 4 5 6 | import datetime base_date = datetime.datetime(1900, 1, 1) convert = lambda x: base_date + datetime.timedelta(days=x-1) >>> convert(42998) datetime.datetime(2017, 9, 21, 0, 0) |
您可以使用
1 2 3 4 | import datetime d = datetime.datetime(1900, 1, 1, 0, 0) d + datetime.timedelta(days = 42998) >> datetime.datetime(2017, 9, 22, 0, 0) |