I have followed following answer in order to convert unix timestamp string into a readable date.
from datetime import datetime ts = int("1284101485") print(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S'))
As input when I provider
1607111882000; it prints
2020-12-04 19:58:02. But on the following site (https://www.unixtimestamp.com/index.php), the output is as follows:
1607111882000 Is equivalent to: 05/06/52897 @ 11:13pm (UTC) 52897-05-06T23:13:20+00:00 in ISO 8601 Mon, 06 May 52897 23:13:20 +0000 in RFC 822, 1036, 1123, 2822 Monday, 06-May-97 23:13:20 UTC in RFC 2822 52897-05-06T23:13:20+00:00 in RFC 3339
Why is there this difference and which one is correct? What should I do to obtain the same result as in the unixtimestamp.com site?
That website is probably using
time.ctime or an equivalent function:
>>> time.ctime(time.mktime(time.gmtime(1607111882000))) 'Mon May 6 23:13:20 52897'
As to whether or not it’s correct to use that is debatable. The date might not be 100% accurate.
For your number, I think you put milliseconds instead of seconds as on my machine it gives an error (
ValueError: year is out of range), but dividing by 1000 gives the correct date for both functions:
>>> ts = 1607111882 >>> print(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')) 2020-12-04 19:58:02 >>> time.ctime(time.mktime(time.gmtime(ts))) 'Fri Dec 4 19:58:02 2020' >>>