2012-01-13 85 views
-4

可能重复:
Converting string into datetime蟒从串读出和设置变量

例'12:00:01 AM”

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

请帮我比较时间,我比较(例如:1:10:00 ')

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

所以我想开发代码通过设置变量

比较时间,但它可以由任何功能是直接可用,请让我知道

否则请帮我设置变量

+0

在http://stackoverflow.com/questions/466345/converting-string-into-datetime的回答可以帮助你。 – AlG 2012-01-13 14:19:55

+0

您尝试实施哪些代码,以及它在哪里无法正常工作? – Makoto 2012-01-13 14:20:26

回答

0

它使用日期时间对象比较容易比较日期和时间,而不是设置表示小时,分钟,秒等等的变量并自己进行计算。

从标准库使用:

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)