Compute Date out of Timestamp from Binance-API (Python)

I received the servertime from the Binance-API,I try to work with and it looks like this:

{
  "serverTime": 1518440400000
}

The question is, how can I compute the date out of this stamp?

I tried

import datetime

print(datetime.datetime.fromtimestamp(
       int("1518308894652")).strftime('%Y-%m-%d %H:%M:%S'))

But the date wasn´t valid.

Do you have ideas, or is it to specific? Thank you!

2 answers

  • answered 2018-02-13 01:16 Addison

    You could use this:

    from datetime import datetime
    datetime.fromtimestamp(int("1518308894652"))
    

    But python says the year is out of range (understandably, considering it says it's 50087). So I suspect that serverTime is not a normal timestamp.

    But assuming the response that you got was the timestamp, so you don't need to do any other conversions other than turning the string into an int.

    Edit:

    Turns out the docs say "All time and timestamp related fields are in milliseconds." So just divide the response by 1000 and you'll be fine: datetime.fromtimestamp(int("1518308894652")/1000). Source

  • answered 2018-02-13 01:21 AidanGawronski

    Your response is in milliseconds when datetime.fromtimestamp requires seconds.

    import datetime
    
    print(datetime.datetime.fromtimestamp(1518308894652/1000))
    
    # 2018-02-10 19:28:14.652000