我有一堆以下格式的时间格式:
"%Y-%m-%d %H:%M:%S"
有没有一种快速的方法或库可以将它们转换为:
YYYY-MM-DD HH:MM:SS
我目前这样做的方法是使用字符串替换,但是也许我会遗漏一些边缘情况。我可能使用的格式化程序是:
%d %b %Y %y %H %M %S %p %f %m %d %z %A
一个例子是:
format.replace('%Y', 'yyyy')
然后继续...
答案 0 :(得分:3)
一种方法是使用%
格式作为模板,然后提供映射,例如:
In []:
from string import Template
mapping = {'Y': 'yyyy', 'm': 'MM', 'd': 'dd', 'H': 'HH', 'M': 'mm', 'S': 'ss'}
Template("%Y-%m-%d %H:%M:%S".replace('%', '$')).substitute(**mapping)
Out[]:
'yyyy-MM-dd HH:mm:ss'
您可以通过子类化str.replace()
来更改模板定界符,而无需执行Template
,例如:
In []:
class MyTemplate(Template):
delimiter = '%'
MyTemplate("%Y-%m-%d %H:%M:%S").substitute(**mapping)
Out[]:
'yyyy-MM-dd HH:mm:ss'
要了解有关%格式的更多信息:https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior