如何在Python中将字符串解析为日期时间

问题描述 投票:0回答:2

我是整个编程的新手,但我喜欢它。

目前我正在设置我的覆盆子pi,以便在我的公共汽车离开时向我展示。

我从当地公交公司获取信息,然后我将其转换为字符串,例如:'09:15'(不是上午/下午)。

我的实际问题:

我希望python能够在现在和下一班巴士离开之间的几分钟内给出差异。

我现在怎样才能将我的String解析为日期时间,然后在现在和公共汽车离开之间得到区别?

#m2 is actually from the website and not created by myself

m2 = '09:15'
bustime = datetime.datetime.strptime(m2, '%I:%M')

这实际上会给我一个像1900-01-01 09:15:00那样奇怪的日期!?如果我想从它中减去“现在”,那就有很大的不同(比如117年o.O)

有人可以帮帮我吗? :-)

更新

我现在有了日期问题,但还有更多的东西: - >公交时间以12小时格式给出,但日期时间将创建24小时格式。我怎样才能解决这个问题,但是之后计算出差异呢?正如我已经提到的,我只希望得到分钟!

python datetime raspberry-pi subtraction
2个回答
0
投票

您只需要为strptime提供小时/分钟。它将Y / M / D默认为1900/1/1。解决这个问题的一种方法是为今天创建一个日期时间,然后将小时分钟设置为字符串中的小时数。字符串需要在':'上拆分并转换为整数:

from datetime import datetime

today = datetime.now()
hour_min = [int(x) for x in "09:15".split(":")]
bus_time = today.replace(hour=hour_min[0], minute=hour_min[1], second=0, microsecond=0)
print(bus_time)

输出:

2017-12-21 09:15:00


0
投票

您需要在构建日期时间时提供日期。您可以从输入中获取时间,从datetime.now()获取日期并将两者结合起来。

bustime = datetime.datetime.strptime(m2, "%I:%M").time()
todaydate = datetime.datetime.now().date()
bustime = datetime.datetime.combine(todaydate, bustime)
© www.soinside.com 2019 - 2024. All rights reserved.