Recibí el tiempo del servidor de Binance-API, trato de trabajar y se ve así:
{ "serverTime": 1518440400000 }La pregunta es, ¿cómo puedo calcular la fecha de este sello?
Lo intenté
import datetime print(datetime.datetime.fromtimestamp( int("1518308894652")).strftime('%Y-%m-%d %H:%M:%S'))Pero la fecha no era válida.
¿Tienes ideas, o es demasiado específico? ¡Gracias!
Podrías usar esto:
from datetime import datetime datetime.fromtimestamp(int("1518308894652")) Pero Python dice que el año está fuera de rango (comprensiblemente, considerando que dice que es 50087). Entonces sospecho que serverTime no es una marca de tiempo normal.
Pero suponiendo que la respuesta que obtuvo fue la marca de tiempo, por lo que no necesita hacer ninguna otra conversión que no sea convertir la cadena en un int.
Resulta que los documentos dicen "Todos los campos relacionados con la hora y la marca de tiempo están en milisegundos". Así que simplemente divida la respuesta por 1000 y estará bien: datetime.fromtimestamp(int("1518308894652")/1000) . Fuente
Su respuesta es en milisegundos cuando datetime.fromtimestamp requiere segundos.
import datetime print(datetime.datetime.fromtimestamp(1518308894652/1000)) # 2018-02-10 19:28:14.652000Pandas puede manejar esto perfectamente especificando milisegundos como unidad.
import pandas as pd pd.to_datetime(1518440400000, unit='ms')