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

Я анализирую объекты datetime из строк. В этой ситуации я столкнулся с проблемой, когда мне нужно добавить объект datetime вместе с объектом time для создания комбинированной метки времени.

Я знаю, что есть метод datetime.combine, нок сожалению, я не смог использовать его в этой ситуации

например, есть две строки, одна содержит отформатированное время даты, а другая имеет отформатированное время, как показано ниже

dt_str = "2018/11/27 14:12:32"
tm_str = "1:23:45.678" # 1 hour 23 minutes 11 seconds and 750 micro seconds

1 Ответ

0 голосов
/ 27 ноября 2018
dt_str = "2018/11/27 14:12:32"
tm_str = "1:23:45.678"

Сначала нам нужно импортировать из стандартных библиотек python, то есть datetime, time и timedelta

import datetime, time
from datetime import timedelta

Затем мы будем анализировать dt_str как объект datetime и tm_str как объект time

dt = datetime.datetime.strptime(dt_str, "%Y/%m/%d %H:%M:%S")
tm = time.strptime(tm_str, "%H:%M:%S.%f")

Теперь мы будем использовать класс timedelta для добавления часов, минут и секунд к объекту datetime из объекта времени

timestamp = dt + timedelta(hours=tm.tm_hour) + \
timedelta(minutes=tm.tm_min) + timedelta(seconds=tm.tm_sec)

Результаты

print("dt:", dt)
print("tm:", tm)
print("timestamp: ", timestamp)

Примечание. Нельзя добавлять значение в микросекундах,по крайней мере, я не знаю метод.Если кто-то знает лучший способ выполнения вышеуказанных операций, пожалуйста, оставьте свои решения ниже

dt: 2018-11-27 14:12:32
tm: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=1, tm_min=23, tm_sec=45, tm_wday=0, tm_yday=1, tm_isdst=-1)
timestamp: 2018-11-27 15:36:17
...