Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert epoch time with nanoseconds to human-readable?

Tags:

I have a timestamp in epoch time with nanoseconds - e.g. 1360287003083988472 nanoseconds since 1970-01-01.

The Python datetime objects and conversion methods only support up to millisecond precision.

Is there an easy way to convert this epoch time into human-readable time?

like image 655
victorhooi Avatar asked Mar 27 '13 00:03

victorhooi


People also ask

How do you convert epoch time to human readable?

Convert from epoch to human-readable dateString date = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new java.util.Date (epoch*1000)); Epoch in seconds, remove '*1000' for milliseconds. myString := DateTimeToStr(UnixToDateTime(Epoch)); Where Epoch is a signed integer. Replace 1526357743 with epoch.

Is epoch time in nanoseconds?

nanoseconds: A real number represents epoch timestamp in nanoseconds. Datetime that occurs before the epoch time (1970-01-01 00:00:00) has a negative timestamp value.

How do you read epoch time?

The Unix epoch (or Unix time or POSIX time or Unix timestamp) is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds (in ISO 8601: 1970-01-01T00:00:00Z).

How do I convert epoch time to manual date?

You can take an epoch time divided by 86400 (seconds in a day) floored and add 719163 (the days up to the year 1970) to pass to it. Awesome, this is as manual as it gets.


1 Answers

First, convert it to a datetime object with second precision (floored, not rounded):

>>> from datetime import datetime >>> dt = datetime.fromtimestamp(1360287003083988472 // 1000000000) >>> dt datetime.datetime(2013, 2, 7, 17, 30, 3) 

Then to make it human-readable, use the strftime() method on the object you get back:

>>> s = dt.strftime('%Y-%m-%d %H:%M:%S') >>> s '2013-02-07 17:30:03' 

Finally, add back in the nanosecond precision:

>>> s += '.' + str(int(1360287003083988472 % 1000000000)).zfill(9) >>> s '2013-02-07 17:30:03.083988472' 
like image 54
Andrew Clark Avatar answered Sep 27 '22 18:09

Andrew Clark