我正在创建一个 django 应用程序,我有下一个问题:我有一个日期(例如"2001 年 6 月 3 日"),但我无法将该字符串转换为日期,因为它不存在 python 中的格式指令来引用没有"0"的一天
我怎样才能把它改成"2001-06-03"?
谢谢!
安装pip install python-dateutil
来使用dateutil
然后
>>>from dateutil import parser
>>>mydate = "June 3, 2001"
>>>str(parser.parse(mydate).date())
'2001-06-03'
如果你使用的是python,你可以使用datetime.strptime。
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 个字母的缩写(如 1 月/2 月/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)