我正在从字符串中解析日期时间对象, 在这种情况下,我遇到了一个问题,我必须将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
答案 0 :(得分:1)
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解析为日期时间对象,将tm_str解析为时间对象
dt = datetime.datetime.strptime(dt_str, "%Y/%m/%d %H:%M:%S")
tm = time.strptime(tm_str, "%H:%M:%S.%f")
现在,我们将使用timedelta类将时间对象中的小时,分钟和秒添加到日期时间对象中
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