将仅限时间的字符串(如“6:02 PM”)转换为日期时间对象?

时间:2012-08-26 18:47:01

标签: python datetime

我是一个不断壮大的Python新手,我正努力让我的代码尽可能高效。就我自己而言,我不能说我做得那么好,但我根本无法解决这个问题,需要帮助很严重。

我有一个输入,以%I:%M%p(例如“6:02 PM”)给出。 我正在尝试输入此代码以找出现在和之后的区别:

import datetime

now = datetime.now()
then = "6:02PM"
tdelta = now - then

我设法将一大堆由strptime和strftime组成的代码组合在一起,但我知道这是错误的。我知道Python,我知道必须有一个更简单的命令才能做到这一点。

1 个答案:

答案 0 :(得分:3)

import datetime as dt

now = dt.datetime.now()
then = dt.datetime.combine(now, dt.datetime.strptime("6:02PM", "%I:%M%p").time())
print(then)
# 2012-08-26 18:02:00

tdelta = now - then
print(tdelta)
# -1 day, 20:53:25.190721