Python: преобразование секунд от начальной даты к дате и времени - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть измерения, сделанные с 1 января 1993 года. Они были записаны в секундах, прошедших с этой даты.Я хотел бы, чтобы они были указаны во времени.

Я знаю, что в MatLab эта функция будет

time = datenum(1993,01,01,00,00, time)

Однако я изо всех сил пытаюсь найти эквивалентную функцию в Python.

Я пытался:

datetime.fromordinal(time) не работает, потому что «объект модуля не имеет атрибута от обычного»?

datetime.datetime(time) не работает (у меня естьматрица, потому что сделано много сканирований)

https://docs.python.org/3/library/datetime.html

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

Допустим, у вас есть список значений времени в секундах, начиная с 1993-01-01 00: 00.

Самый простой будет:

datevec=[datetime.datetime(1993,1,1,0)+datetime.timedelta(seconds=val) for val in timevector]
0 голосов
/ 13 сентября 2018

Это похоже на время UNIX, но с другим началом.

Вы можете вычислить смещение один раз:

>>> import datetime as dt
>>> dt.datetime(1993,1,1).timestamp()
725842800.0

и используйте его в своей программе:

OFFSET = 725842800.0
mydate = dt.datetime.fromtimestamp(OFFSET + seconds_from_1993)
0 голосов
/ 13 сентября 2018

Сначала вам нужно будет создать объект datetime для 1 января 1993 года, а затем добавить количество секунд к этой дате. Код ниже должен помочь вам начать.

from datetime import datetime, timedelta

original_date = datetime.strptime('01-01-1993', '%d-%m-%Y')
original_date + timedelta(seconds= 10000)

вывод: datetime.datetime (1993, 1, 1, 2, 46, 40)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...