将用户可理解的日期时间格式字符串转换为strptime可理解的格式字符串

时间:2013-05-24 12:12:43

标签: python datetime-format

如何将"dd/MM/yyyy""HH:mm""dd-MMM-yy""M/d/yyyy"等转换为"%d/%m/%Y""%H:%M",{{1} }或"%d-%b-%y"等?

2 个答案:

答案 0 :(得分:2)

您可以扩展replacements以涵盖所有可能的用户日期时间格式(您也可以编辑此答案以将其包含在此处)

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'

答案 1 :(得分:0)

更改日期时间的格式

导入日期时间

d = datetime.datetime.strptime(“2013-05-24”,“%Y-%m-%d”) datetime.datetime(2013,5,24,0,0)

d.format( “%d。%B。%Y”) '24 - 5月-2013'

在两个下划线之前和之后放置的格式函数