Python 从字符串读取并设置变量

-4 投票
1 回答
5208 浏览
提问于 2025-04-17 10:10

可能重复的问题:
将字符串转换为日期时间

例子:'12:00:01 AM'

我想设置一些变量:hr = 12,min = 00,s = 01,t = AM

请帮我比较时间,我想比较(例如:1:10:00 PM < '12:00:01 AM')

用 < 的符号比较时,结果并不总是正确的。

所以我在尝试写代码来通过设置变量来比较时间。

不过,如果有现成的函数可以直接使用,请告诉我。

否则,请帮我设置这些变量。

1 个回答

0

用日期时间对象来比较日期和时间会简单很多,而不是自己去设置小时、分钟、秒等变量,然后再进行计算。

可以使用标准库里的 datetime.strptime

import datetime as dt

date1 = dt.datetime.strptime('12:00:01 AM', '%I:%M:%S %p')
date2 = dt.datetime.strptime('1:10:01 PM', '%I:%M:%S %p')   

print(date1)
# 1900-01-01 12:00:01

print(date2)
# 1900-01-01 13:10:01

print(date2 < date1)
# False

或者,使用 dateutil

import dateutil.parser as parser

date1 = parser.parse('12:00:01 AM')
date2 = parser.parse('1:10:00 PM')

print(date1)
# 2012-01-13 00:00:01

print(date2)
# 2012-01-13 13:10:00

print(date2 < date1)
# False

上面的内容说明了不需要为小时、分钟和秒设置变量。不过,从 datetime.datetime 对象中获取这些信息也是很简单的:

In [44]: x = dt.datetime.strptime('12:00:01 AM', '%I:%M:%S %p')

In [45]: x.hour, x.minute, x.second
Out[45]: (0, 0, 1)

撰写回答