如何删除';0';从我在django(python)的约会日开始?
我正在创建一个django应用程序,我遇到了下一个问题:我有一个日期(例如“2001年6月3日”),无法将该字符串转换为日期,因为python中不存在引用没有“0”的日期的format指令 我怎样才能把它转换成“2001-06-03”如何删除';0';从我在django(python)的约会日开始?,python,django,date,datetime,Python,Django,Date,Datetime,我正在创建一个django应用程序,我遇到了下一个问题:我有一个日期(例如“2001年6月3日”),无法将该字符串转换为日期,因为python中不存在引用没有“0”的日期的format指令 我怎样才能把它转换成“2001-06-03” 谢谢 如果您使用的是python,则可以使用datetime.strtime- from datetime import datetime d = datetime.datetime.strptime("June 3 , 2001" , "%B %d , %Y")
谢谢 如果您使用的是python,则可以使用datetime.strtime-
from datetime import datetime
d = datetime.datetime.strptime("June 3 , 2001" , "%B %d , %Y")
d
>> datetime.datetime(2001, 6, 3, 0, 0)
请理解%B
(注意大写字母B)->代表完整的月份名称(如一月/二月/六月)
如果要使用3个字母的缩写(如一月/二月/六月),请使用%b
要以要求使用的格式返回日期,请使用datetime.strftime
,如下所示-
d.strftime("%Y-%m-%d")
>> '2001-06-03'
如果必须对月份名称使用两种格式,可以先尝试使用一种格式,然后捕获异常,如果失败,则使用另一种格式。范例-
from datetime import datetime
try:
d = datetime.datetime.strptime("June 3 , 2001" , "%B %d , %Y")
expect ValueError:
d = datetime.datetime.strptime("June 3 , 2001" , "%b %d , %Y")
d
>> datetime.datetime(2001, 6, 3, 0, 0)
通过安装
pip install python dateutil
然后
问题是%d对于该天不正确,因为“3”天没有“0”(我的意思是,它不是“03”);所以我有一个错误。“时间数据‘2010年6月6日’与格式“%b%d,%Y”不匹配”正如我在帖子中所说(请仔细阅读),请使用
%b
,而不是%b
(大写b),问题不在于%d
“0”不是问题,只需在控制台中尝试该行,您就会看到。时间数据‘2010年6月6日’与格式“%b%d”不匹配,%Y'就像我说的,只使用一种格式,三个字母的缩写或全名,谢谢!!这就是我需要的!
>>>from dateutil import parser
>>>mydate = "June 3, 2001"
>>>str(parser.parse(mydate).date())
'2001-06-03'