| re: Converting date to milliseconds since 1-1-70
NateM wrote:[color=blue]
> How do I convert any given date into a milliseconds value that
> represents the number of milliseconds that have passed since January 1,
> 1970 00:00:00.000 GMT?
> Is there an easy way to do this like Date in java?
> Thanks,
> Nate[/color]
The main module for dates and times is "datetime"; so
[color=blue][color=green][color=darkred]
>>> import datetime
>>> t=datetime.datetime.now()
>>> print t[/color][/color][/color]
2006-01-24 15:13:35.012755
To get at the "epoch" value, i.e. seconds since 1/1/1970, use the
"time" module:
[color=blue][color=green][color=darkred]
>>> import time
>>> print time.mktime(t.timetuple())[/color][/color][/color]
1138133615.0
Now just add in the microseconds:[color=blue][color=green][color=darkred]
>>> epoch=time.mktime(d.timetuple())+(t.microsecond/1000000.)
>>> print epoch[/color][/color][/color]
1138133615.01
Use the "%" formatting operator to display more resolution:[color=blue][color=green][color=darkred]
>>> print '%f' % t[/color][/color][/color]
1138133615.012755
Note that the floating point division above is not exact and could
possibly
mangle the last digits.
Another way to this data is the datetime.strftime member:
[color=blue][color=green][color=darkred]
>>> print d.strftime('%s.%%06d') % d.microsecond[/color][/color][/color]
'1138133615.012755'
This gets you a string, not a number object. Converting the string to
a number again risks inaccuracy in the last digits:[color=blue][color=green][color=darkred]
>>> print float( '1138133615.012755')[/color][/color][/color]
1138133615.0127549 |