Python 将用户可理解的日期时间格式字符串转换为strptime可理解格式字符串
如何将Python 将用户可理解的日期时间格式字符串转换为strptime可理解格式字符串,python,datetime-format,Python,Datetime Format,如何将“dd/MM/yyyy”,“HH:MM”,“dd-MMM-yy”,“M/d/yyyyy”等转换为%d/%M/%Y”,%H:%M”,%d-%b-%Y”或%M/%d/%Y”等?您可以将替换扩展到所有可能的时间格式(您也可以编辑此答案以将其包含在此处) 更改日期时间的格式 导入日期时间 d=datetime.datetime.strtime(“2013-05-24”,%Y-%m-%d”) datetime.datetime(2013,5,24,0,0) d、 格式(“%d.%b.%Y”) “20
“dd/MM/yyyy”
,“HH:MM”
,“dd-MMM-yy”
,“M/d/yyyyy”
等转换为%d/%M/%Y”
,%H:%M”
,%d-%b-%Y”
或%M/%d/%Y”
等?您可以将替换扩展到所有可能的时间格式(您也可以编辑此答案以将其包含在此处)
更改日期时间的格式
导入日期时间
d=datetime.datetime.strtime(“2013-05-24”,%Y-%m-%d”)
datetime.datetime(2013,5,24,0,0)
d、 格式(“%d.%b.%Y”)
“2013年5月24日”
在两个下划线前后放置的format函数很有趣,但是您希望它对任何有效的datetime
都有效吗?@jamylak我不理解您的问题。任何无效的datetime
的示例?我问您是否希望在这里支持整个表:@jamylak不是整个表,只是那些具有等效值的表用户可以理解的表示法。当我在这里的时候,你的意思是什么?ddd
??
import re
replacements = {
r'dd': '%d',
r'd': '%d',
r'MM': '%m',
r'M': '%m',
r'yyyy': '%Y',
r'HH': '%H',
r'mm': '%M',
r'MMM': '%b',
r'yy': '%Y',
}
def fn(match):
return replacements[match.group()]
def F(text):
pat = '|'.join(r'\b' + re.escape(k) + r'\b' for k in replacements)
return re.sub(pat, fn, text)
>>> F("dd/MM/yyyy")
'%d/%m/%Y'
>>> F("HH:mm")
'%H:%M'
>>> F("dd-MMM-yy")
'%d-%b-%Y'
>>> F("M/d/yyyy")
'%m/%d/%Y'