目前我正在开发一个命令行程序,并在那里打印日期。
我使用 datetime.datetime.strftime
执行此操作:
import datetime
d = datetime.datetime(2012,12,12)
date_str = d.strftime(config.output_str)
其中config.output_str
是用户可以设置的格式字符串。
有没有办法判断字符串 date_str
的最大长度?
特别是如果使用像 u'%d %B %Y'
这样的格式字符串,其中月份的长度 (%B
) 取决于语言用户?
最佳答案
如果您没有使用 locale
模块设置语言环境,则 Python 使用 C 语言环境,您可以预测产生的最大长度。所有字符串都将是英文的,并且每个格式字符的最大长度是已知的。
自己解析字符串,计算非格式字符并将格式字符映射到该字段的最大长度。
如果您要使用locale
,则需要计算每种语言的最大长度。您可以通过在月份、工作日和 AM/PM 上循环并测量 %a
、%A
、 的最大长度来自动化与区域设置相关的字段%b
、%B
、%c
、%p
、%x
和 %X
格式。我会根据需要即时执行此操作。
其余格式不因语言环境而异,并且有记录的最大长度(strptime
table 中的示例是典型的,您可以依赖那些记录字段长度的示例)。
关于python - 如何获得 datetime.strftime 的最大长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23671696/