我是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')
非常感谢您提供任何方向!所有这些让我很困惑......
答案 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之间添加额外的日期时间。