Proper conversion of timestamp

Igor Korot ikorot01 at gmail.com
Tue Mar 4 21:19:48 EST 2014


MRAB,

On Tue, Mar 4, 2014 at 4:42 PM, MRAB <python at mrabarnett.plus.com> wrote:
> On 2014-03-04 21:55, Igor Korot wrote:
>>
>> Hi, Mark,
>>
>>
>> On Tue, Mar 4, 2014 at 1:44 PM, Mark Lawrence <breamoreboy at yahoo.co.uk
>> <mailto:breamoreboy at yahoo.co.uk>> wrote:
>>
>>     On 04/03/2014 20:57, Igor Korot wrote:
>>
>>         Hi, ALL,
>>         I'm getting this:
>>
>>         timestamp out of range for platform localtime()/gmtime() function
>>
>>         trying to convert the timestamp with milliseconds into the
>>         datetime object.
>>
>>         The first hit of Google gives me this:
>>
>>
>> http://stackoverflow.com/__questions/12458595/convert-__epoch-timestamp-in-python
>>
>>
>> <http://stackoverflow.com/questions/12458595/convert-epoch-timestamp-in-python>
>>
>>         but the solution described is not good for me since it does not
>>         gives
>>         me the milliseconds value.
>>
>>         How do I get the proper datetime value including milliseconds
>>         from the
>>         timestamp?
>>
>>         Thank you.
>>
>>
>>     You have a long record of asking timestamp related questions so you
>>     should know where the docs are that provide the answer to this
>>     question.  I'll leave you to go off and read them.  If you don't
>>     understand them, please cut and paste your code here, state what you
>>     expected to happen, what actually happened, including any traceback
>>     if applicable, and then we'll be happy to point you the error of
>>     your ways.
>>
>>
>> Working with the dates is not that easy and not just in Python.
>> There are too many different formatting involved with many different
>> representation.
>> And on top of it it is possible to use one system in completely
>> different environment.
>>
>> But this particular question is easy.
>>
>> What I have is a timestamp which reads: 1289410678L.
>>
> That's an integer. It looks like the timestamp is a whole number of
> seconds, so the number of milliseconds is 0. (I make it '2010-11-10
> 17:37:58'.)

Well it is this particular timestamp.
But I have a lot of files to process and some do have a timestamp with
the milliseconds.

>
>
>> Trying to convert this into the datetime object in Python using:
>>
>> import datetime
>> datetime.datetime.fromtimestamp( stamp )
>>
>> produces the error: timestamp out of range for platform
>> localtime()/gmtime() function.
>>
>> This is because this timestamp is not in seconds, but rather in
>> milliseconds.
>>
>> Now the question I have is: how do I properly convert this timestamp
>> into the datetime object with the milliseconds?
>>
> Using the datetime's .strftime method, you can include the number of
> microseconds in the format with '%f' (it'll write the microseconds as 6
> digits).
>
> If you want it to the nearest millisecond (the timestamp would be a
> float), you could round the timestamp to 3 decimal places, use the '%f'
> in the format, and then truncate the string result to remove the last 3
> digits.

Right.
The question is: how to get the number of milliseconds out of timestamp?
Once again: I can get the datetime object with the seconds precision
by dividing it on 1000. But that will produce the datetime object with
the seconds precision.

I can actually produce another timestamp with the milliseconds from a
different file...

Thank you.

>
> --
> https://mail.python.org/mailman/listinfo/python-list



More information about the Python-list mailing list