How to convert the integer date format into YYYYMMDD?

James Bond picture James Bond · Apr 12, 2010 · Viewed 63.1k times · Source

Python and Matlab quite often have integer date representations as follows:

733828.0 733829.0 733832.0 733833.0 733834.0 733835.0 733836.0 733839.0 733840.0 733841.0

these numbers correspond to some dates this year. Do you guys know which function can convert them back to YYYYMMDD format?

thanks a million!

Answer

Peter Hansen picture Peter Hansen · Apr 12, 2010

The datetime.datetime class can help you here. The following works, if those values are treated as integer days (you don't specify what they are).

>>> from datetime import datetime
>>> dt = datetime.fromordinal(733828)
>>> dt
datetime.datetime(2010, 2, 25, 0, 0)
>>> dt.strftime('%Y%m%d')
'20100225'

You show the values as floats, and the above doesn't take floats. If you can give more detail about what the data is (and where it comes from) it will be possible to give a more complete answer.