python - 如何获得 datetime.strftime 的最大长度?

标签 python datetime

目前我正在开发一个命令行程序,并在那里打印日期。

我使用 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/

相关文章:

javascript - Django 身份验证和 Ajax - 需要登录的 URL

python - Pandas Dataframe -(列重组)

python - 如何在Python中将系列类型的列转换为日期时间工作日格式?

python-3.x - 日期时间字符串到纪元 : pandas dataframe

C# - 以分钟为单位计算时差

java - eclipselink jpa 运算符详细信息

python - 添加@csrf_exempt的位置是否错误?

C++ 相当于 Python difference_update?

python - 难道cProfile背叛了我?

php - 在 php 中检索 SQL 日期时间和 POST