python从字符串读取和设置变量

时间:2012-01-13 14:14:02

标签: python time

  

可能重复:
  Converting string into datetime

示例'12:00:01 AM'

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

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

使用<产生的符号结果并不总是正确的。

所以我正在尝试开发代码来通过设置变量来比较时间

但它可以通过任何功能直接提供,请告诉我

否则请帮我设置变量

1 个答案:

答案 0 :(得分: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)