Это не ответ, скорее решение моей проблемы.Нужно использовать int()
для переменной, которая содержит «сотую долю секунды», в противном случае это даст мне неверный результат.
time_adcp=[]
for i in range(len(SerHour)):
c_time = datetime.datetime(Year[i],Month[i],Day[i],Hour[i],Min[i],Sec[i],int(Hund[i])*10000)
time_adcp = np.append(time_adcp,c_time)
Однако я не понимаю, почему мне не нужно использоватьint()
для других переменных, которые пришли из того же файла ... ???И, что более важно, что это за неправильный результат?
С самого начала:
1) Я загрузил структурный файл .mat, который изначально был экспортирован не Matlab.Я использовал
import scipy.io as sio
d_adcp = sio.loadmat('file_adcp.mat')
Я отделил переменные даты и времени от d_adcp
Year = d_adcp['SerYear']
Month = d_adcp['SerMon']
Day = d_adcp['SerDay']
Hour = d_adcp['SerHour']
Min = d_adcp['SerMin']
Sec = d_adcp['SerSec']
Hund = d_adcp['SerHund']
Теперь, что это за переменные?Они выглядят как целые числа
print(Year[0],Month[0],Day[0],Hour[0],Min[0],Sec[0],Hund[0])
[19] [2] [6] [9] [35] [29] [61]
проверяют, они не являются целыми числами
isinstance(Year,int)
False
и не плавают!?
isinstance(Year,float)
False
Насколько я знаю, datetime
принимать только целые числаИтак, почему это сначала сработало, даже давая мне неправильный результат?И почему мне нужно использовать int()
только для Hund
Я был бы очень признателен за помощь, чтобы понять, что происходит ... спасибо.