Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 1, 2023 07:37:01

Begimot
Зарегистрирован: 2023-11-28
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

разница между датами в numpy.datetime64 и datetime


Друзья, прошу подсказку!

Появилась у меня необходимость найти разницу в минутах между двумя переменными пот таких типов и значений (переменная, тип, значение):

self.common_p_targ_last_time_stamp
<class ‘numpy.datetime64’>
2023-12-01T05:12:09.682073000

shift_sys_time
<class ‘datetime.datetime’>
2023-12-01 08:23:15.567809+03:00

Читал-читал статьи в инете, что-то получается, но мне не нравится, как я делаю.
После долгих мучений у меня работает вот это:
crr_minutes_delay = (np.datetime64(shift_sys_time) - self.common_p_targ_last_time_stamp) / 1000000000 / 60

Причем тип данных результат имеет приставку “nanoseconds”.
А результат crr_minutes_delay мне потом надо сравнить с обычным числом типа “int”.
Что-то я явно делаю не то!

Посоветуйте, как правильнее выполнить эту операцию, пож-та!

Офлайн

#2 Дек. 1, 2023 08:05:15

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9861
Репутация: +  853  -
Профиль   Отправить e-mail  

разница между датами в numpy.datetime64 и datetime

Каждую дату переведи в секунды (представление даты-времени в секундах, начиная с 1 января 1970 (день рождения операционной системы UNIX)). Потом на секундах вычисли разницу и переведи её в минуты.



Офлайн

#3 Дек. 1, 2023 08:25:00

Begimot
Зарегистрирован: 2023-11-28
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

разница между датами в numpy.datetime64 и datetime

Спасибо!
Так и сделаю…. в следующий раз.

Я понял, что неудачно вынимал данные из фрейма данных.
Я делал так:

date_of_data = self.all_tags_fr[self.all_tags_fr['TagName'] == tag_name]['date_of_data'].values[0]
При этом, я получал неудобный <class ‘numpy.datetime64’> и, вроде, терял часовой пояс (а мне он важен).
Применил это:
date_of_data = self.all_tags_fr[self.all_tags_fr['TagName'] == tag_name]['date_of_data'].iloc[0]
и стал получать удобный тип timestamp. А далее, дельта вычисляется как в учебнике для новичков.

Отредактировано Begimot (Дек. 1, 2023 08:27:49)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version