我创建一个Django应用程序,我有一个问题:我有一个日期(例如“2001年6月3日”),我不能说字符串转换为日期,因为它不存在于格式指令蟒蛇指一天没有“0”如何从django(python)的日期中删除'0'?
我怎么能caonvert,为“2001年6月3日”?
谢谢!
我创建一个Django应用程序,我有一个问题:我有一个日期(例如“2001年6月3日”),我不能说字符串转换为日期,因为它不存在于格式指令蟒蛇指一天没有“0”如何从django(python)的日期中删除'0'?
我怎么能caonvert,为“2001年6月3日”?
谢谢!
您可以通过安装pip install python-dateutil
使用dateutil
然后
>>>from dateutil import parser
>>>mydate = "June 3, 2001"
>>>str(parser.parse(mydate).date())
'2001-06-03'
您可以使用datetime.strptime,如果你正在使用python -
from datetime import datetime
d = datetime.datetime.strptime("June 3 , 2001" , "%B %d , %Y")
d
>> datetime.datetime(2001, 6, 3, 0, 0)
请理解%B
(通知资本B) - >为完整的月份名称(如一月/ 2月/ 6月)
如果你会使用3名字母的缩写,而不是(像一月/二月/ 6月),使用%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)
问题是,%d不是一天正确的,因为这一天 “3” 还没有“0 '(我的意思是,它不是“03”);所以我有一个错误。 “实时数据 '2010年6月6' 不匹配格式 '%B%d,%Y'” – jartymcfly
就像我在帖子中说(请仔细阅读),使用'%B',不'%B'(资本B),问题不在'%d'中。 –
'0'不是问题,只要在控制台中尝试一下,就会看到。 – Gocht
谢谢!这是我需要的! – jartymcfly