【发布时间】:2019-03-01 04:23:49
【问题描述】:
用户 Pyramid、Colander 和 Deform,我有一个日期时间小部件。
datetime_event = colander.SchemaNode(
colander.DateTime(),
validator=colander.Range(
min=datetime(
2018, 1, 1, 0, 0,
tzinfo=timezone.utc),
min_err=(
'${val} must be after ${min}'),
max=datetime.now(timezone.utc),
max_err=(
'${val} is in the future, and must be less than ${max}')
),
)
我收到此用户恶意验证错误消息。
2017-08-21 05:00:00-07:53 必须在 2018-01-01 00:00:00+00:00 之后
我想格式化没有时区的日期:
2017-08-21 05:00:00 必须在 2018-01-01 00:00:00 之后
或者更好:
2017 年 8 月 21 日凌晨 5:00 必须在 2018 年 1 月 1 日凌晨 12:00 之后
如果可能,我将如何格式化 min_err 和 max_err 中的日期时间对象?
【问题讨论】:
-
-07:53 作为时区看起来根本不正确
-
该区域表明您正在使用 pytz 没有经过适当的规范化
-
确实如此。在提出这个问题之后,我了解到 pytz 在
_tzinfos中有一个时区列表,其中包括一个过时的本地平均时间 (LMT),它成为默认值,因为它在列表中是第一个。我最终解决了所有问题,如下面的回答所示。