从输入处理时间的最佳方式

时间:2012-11-30 21:16:42

标签: python date time

我正试图从用户那里得到一个日期和一小时。

date = raw_input("enter date (example: 25/12/1990) ")
hour = raw_input("enter hour (example: 20:00) ")

我就是这样做的,但我认为这不是实施它的好方法 在输入之后我想将输入的时间与当前时间和其他时间进行比较 我计划使用python的time模块。

你会建议什么?

2 个答案:

答案 0 :(得分:1)

上面给出了一个字符串日期。您需要将该字符串转换为datetime对象,并处理出现的任何错误。如果您将用户限制为简单日期,那么您可以使用datetime模块执行所有操作,如下所示:

>>> import datetime
>>> date = "15/03/2012"
>>> datetime.datetime.strptime(date, "%d/%m/%Y")
datetime.datetime(2012, 3, 15, 0, 0)
>>> hour = "13:01"
>>> datetime.datetime.strptime(hour, "%H:%M")
datetime.datetime(1900, 1, 1, 13, 1)
>>> datetime.datetime.strptime(date + " " + hour, "%d/%m/%Y %H:%M")
datetime.datetime(2012, 3, 15, 13, 1)

>>> date = "1/4/2012"
>>> hour = "3:01"
>>> datetime.datetime.strptime(date + " " + hour, "%d/%m/%Y %H:%M")
datetime.datetime(2012, 4, 1, 3, 1)

您可以使用其他日期时间模块代码来执行获取当前日期和时间,或查找两个日期或时间之间的差异。

答案 1 :(得分:0)

我见过的最好的解决方案之一 - dateutil包,它们具有带parse()函数的解析器模块,试图从字符串中提取日期/时间。看看例子here