我设法知道了日期
import datetime
getDate = datetime.date.today()
print(getDate.strftime("%Y-%B-%d"))
输出为2018-June-23
但是我想这样格式化输出:2018-JUNE-23
(月份是大写)
答案 0 :(得分:5)
要直接在格式字符串中执行此操作,请在月份(^
)前面加上carrot:
>>> getDate = datetime.date.today()
>>> print(getDate.strftime("%Y-%^B-%d"))
2018-JUNE-22
注意:如果平台strftime
上具有glibc扩展(或等效功能),则此方法有效。您可以通过致电man strftime
进行检查。如果它在您的平台上不起作用,或者您需要保证行为是跨平台的,则宁愿使用str.upper
作为shown in the other answer来在此处进行额外的功能调用。
答案 1 :(得分:4)
只需使用.upper()
:
print(getDate.strftime("%Y-%B-%d").upper())
答案 2 :(得分:-3)
要在wim上添加答案,以使其跨平台,在所有平台上执行此操作最准确的方法是使用附加包装器。
Python 3+的示例包装器将使用格式字符串:
import datetime
class dWrapper:
def __init__(self, date):
self.date = date
def __format__(self, spec):
caps = False
if '^' in spec:
caps = True
spec = spec.replace('^', '')
out = self.date.strftime(spec)
if caps:
out = out.upper()
return out
def __getattr__(self, key):
return getattr(self.date, key)
def parse(s, d):
return s.format(dWrapper(d))
d = datetime.datetime.now()
print(parse("To Upper doesn't work always {0:%d} of {0:%^B}, year {0:%Y}", d))