如何允许用户使用Python选择日期

时间:2013-12-09 08:13:49

标签: date datetime python-2.7 datepicker

我是Python的新手,已经在这里搜索了几天,所以如果答案发布在我无法找到的地方,我会提前道歉。我发现的任何东西都不是我需要的方式。

我正在尝试编写代码以允许用户选择开始日期和结束日期。我有一个csv文件,其中包含以这种格式显示日期的字段:1/1/2013 0:00我希望允许用户从2013年1月1日到2013年6月30日期间从任何范围中选择日期。

我已导入以下内容,然后我的问题立即开始,因为我正在获取AttributeError: 'method_descriptor' object has no attribute 'strptime',但我知道这是一个属性。我也试图避免使用任何GUI;只需要一种简单的方法来允许用户输入参数。我的结论是将其转换为ArcGIS中用于用户输入参数的工具,我可以这样做,但我需要先正确创建脚本。

import arcpy, os, sys                      
from datetime import datetime, date, timedelta

startDate = datetime.date.strptime(userdateString, '%Y-%m-%d')

非常感谢您提供任何方向!所有这些让我很困惑......

2 个答案:

答案 0 :(得分:1)

这消除了属性错误:

>>> from datetime import datetime
>>> userdateString = '2013-2-1'
>>> datetime.strptime(userdateString, '%Y-%m-%d')
datetime.datetime(2013, 2, 1, 0, 0)

请注意,要使用的代码取决于导入的内容。如果我使用import date代替from datetime import datetime,请注意,由于python的命名约定,使用的方法是datetime.datetime.strptime而不是datetime.strptime,如上所述:

>>> import datetime
>>> userdateString = '2013-2-1'
>>> datetime.datetime.strptime(userdateString, '%Y-%m-%d')
datetime.datetime(2013, 2, 1, 0, 0)

ADDENDUM:是的,您可以更改日期格式:

>>> from datetime import datetime
>>> s = '2-1-2013'
>>> datetime.strptime(s, '%m-%d-%Y')
datetime.datetime(2013, 2, 1, 0, 0)
>>> s = '2/1/2013'
>>> datetime.strptime(s, '%m/%d/%Y')
datetime.datetime(2013, 2, 1, 0, 0)

答案 1 :(得分:0)

>>> import datetime
>>> userdateString= '2013-2-1'
>>> startDate = datetime.datetime.strptime(userdateString, '%Y-%m-%d')
>>> print startDate
2013-02-01 00:00:00

您需要在datetime和strptime之间添加额外的日期时间。