2014-11-07 2 views
0

Я читаю метку времени с устройства, которое приходит в целочисленном формате, представляющем количество секунд с 1 января 2000 года. Используя Python, как его преобразовать в читаемую дату/с 1 января 2000 года, как моя эпоха?Преобразование целого числа в дату/время из другой эпохи

Я пробовал несколько функций datetime, но всегда получаю неправильную дату. Я предполагаю, что Python автоматически принимает другое время, чем то, что мне нужно (1970 год - 30 лет).

Вот строка кода настоящее время я использую:

datetime.datetime.fromtimestamp(int(z[i][2])).strftime('%Y-%m-%d %H:%M:%S') 

ответ

1

Вы можете использовать timedelta, чтобы помочь вам, например:

>>> from datetime import datetime, timedelta 
>>> base = datetime(2000, 1, 1) # start of your epoch 
>>> base + timedelta(seconds=123456789) # add on a number of seconds 
datetime.datetime(2003, 11, 29, 21, 33, 9) 

Вы также можете изменить процесс с помощью timedelta.total_seconds:

>>> (datetime.now() - base).total_seconds() 
468696508.531 

И вы правы, fromtimestamp принимает th e количество секунд с 1970/1/1.

+0

Удивительный, похоже, что он исправил его. Теперь строка кода выглядит так: 'r3 = base + timedelta (seconds = int (z [i] [2]))' – SnapperTrx

Смежные вопросы