1

I see how How can I parse a time string containing milliseconds in it with python? provides a solution when parsing a full timestamp and Is there an inverse function for time.gmtime() that parses a UTC tuple to seconds since the epoch? provides a solution when parsing time.gmtime(). How do I parse time.time()? That means, converting it to a time tuple, or something similar with better precision.

I was hoping to preserve microseconds.

Community
  • 1
  • 1
Janus Troelsen
  • 20,267
  • 14
  • 135
  • 196

2 Answers2

1

datetime.datetime.fromtimestamp

Janus Troelsen
  • 20,267
  • 14
  • 135
  • 196
1

There is a long history of discussion on the python bug tracker about round-tripping timestamps. It's probably worth a read, but the quick hack is:

In [1]: import datetime, time

In [2]: dt = datetime.datetime(2012, 2, 10, 15, 18, 15, 234567)

In [3]: seconds = time.mktime(dt.timetuple())

In [4]: seconds += (dt.microsecond/1000000.0)

In [5]: seconds
Out[5]: 1328908695.234567

In [6]: datetime.datetime.fromtimestamp(seconds)
Out[6]: datetime.datetime(2012, 2, 10, 15, 18, 15, 234567)

Then, you may just deal with a datetime object which will allow you to parse things properly.

Travis Vaught
  • 358
  • 2
  • 6