如何在Python中将字符串解析为日期时间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Python中将字符串解析为日期时间相关的知识,希望对你有一定的参考价值。
我是整个编程的新手,但我喜欢它。
目前我正在设置我的覆盆子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小时格式。我怎样才能解决这个问题,但是之后计算出差异呢?正如我已经提到的,我只希望得到分钟!
答案
您只需要为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
另一答案
您需要在构建日期时间时提供日期。您可以从输入中获取时间,从datetime.now()获取日期并将两者结合起来。
bustime = datetime.datetime.strptime(m2, "%I:%M").time()
todaydate = datetime.datetime.now().date()
bustime = datetime.datetime.combine(todaydate, bustime)
以上是关于如何在Python中将字符串解析为日期时间的主要内容,如果未能解决你的问题,请参考以下文章