datetime.datetime.fromtimestamp()верно, за исключением того, что вы, вероятно, имеете метку времени в миллисекундах (как в JavaScript), но ожидаете fromtimestamp()метку времени Unix в секундах.
Сделай это так:
>>> import datetime
>>> your_timestamp = 1331856000000
>>> date = datetime.datetime.fromtimestamp(your_timestamp / 1e3)
и результат:
>>> date
datetime.datetime(2012, 3, 16, 1, 0)
Это отвечает на ваш вопрос?
РЕДАКТИРОВАТЬ : JF Себастьян правильно предложил использовать истинное деление на 1e3(плавать 1000). Разница значительна, если вы хотите получить точные результаты, поэтому я изменил свой ответ. Разница заключается в поведении по умолчанию в Python 2.x, которое всегда возвращается intпри делении (используя /оператор) intна int(это называется делением по полу ). Заменяя делитель 1000(будучи int) 1e3делителем (являясь представлением 1000как float) или float(1000)(или 1000.т. Д.), Деление становится истинным делением . Python возвращает 2.x , floatкогда делящиеся intна float, floatпо int,floatи floatт. д. И когда в метке времени, передаваемой fromtimestamp()методу, есть некоторая дробная часть , результат этого метода также содержит информацию об этой дробной части (в виде числа микросекунд).
/ 1e3