time as float since Jan 1, 0001?

Roy Smith roy at panix.com
Sat Feb 23 14:29:01 CET 2013

I'm working with matplotlib.plot_date(), which represents time as 
"floats starting at January 1st, year 0001".  Is there any 
straight-forward way to get that out of a datetime?

datetime.toordinal() gives me the number of days since that epoch, but 
as an integer.  I figured it wouldn't be too hard to just do:

t.toordinal() + t.time().total_seconds()

except it turns out that only timedelta supports total_seconds(); time 

I suppose I could do:

t.toordinal() + t.hour / 24.0 \
              + t.minute / 1440.0 \
              + t.second / 86400.0

but that's really ugly.  Is there no cleaner way to do this conversion?

More information about the Python-list mailing list