Преобразование объектов Datetime в секунды в Python
При работе с объектами datetime в Python часто возникает необходимость преобразовать их в секунды для различных аналитические цели. Однако метод toordinal() может не обеспечить желаемый результат, поскольку он различает только даты с разными днями.
Чтобы точно преобразовать объект datetime в секунды, особенно для конкретной даты 1 января 1970 года, доступно несколько вариантов. Для всех остальных начальных дат вам необходимо вычислить разницу во времени между двумя датами.
Для 1 января 1970 г.:
datetime.datetime.timestamp(): Этот метод напрямую возвращает количество секунд с начала эпохи Unix, что соответствует 00:00:00 UTC 1 января 1970 года.
t = datetime.datetime(1970, 1, 1)
seconds = t.timestamp()
time.mktime(): Функция time.mktime() также может использоваться для преобразования объекта datetime в секунды, поскольку эпоха Unix.
import time
t = datetime.datetime(1970, 1, 1)
time_struct = t.timetuple()
seconds = time.mktime(time_struct)
Для любой другой начальной даты:
timedelta.total_секунды (): Вычитание двух объектов datetime приводит к созданию объекта timedelta. Метод total_секунды() timedelta выдает количество секунд между двумя датами.
t = datetime.datetime(2009, 10, 21, 0, 0)
starting_date = datetime.datetime(1970, 1, 1)
seconds = (t - starting_date).total_seconds()
Важно отметить, что для получения точных результатов начальную дату следует указывать в формате UTC (Всемирное координированное время). Если ваша дата-время не в формате UTC, вам необходимо преобразовать ее или прикрепить класс tzinfo с соответствующим смещением.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3