将python日期格式(%Y)转换为Java(yyyy)

时间:2019-01-10 01:50:25

标签: python

我有一堆以下格式的时间格式:

"%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')

然后继续...

1 个答案:

答案 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