You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让pytz默认使用当日闭市时间(23:59:59)处理日期?

实现方法

有两种简单的方式可以把日期解析为当日的闭市时间(23:59:59 UTC):

方法一:基于原解析结果调整时间

先解析出当日0点的时间对象,再通过加1天并减1秒得到当日结束时间:

import dateutil
import pytz
from datetime import timedelta

utc = pytz.UTC
# 解析得到当日0点的datetime对象
dt_start = dateutil.parser.parse('2024-10-31')
# 调整为当日23:59:59
dt_close = utc.localize(dt_start + timedelta(days=1, seconds=-1))
print(dt_close)

输出:

2024-10-31 23:59:59+00:00

方法二:直接构造指定时间的datetime对象

如果输入是固定格式的日期字符串,可直接构造包含23:59:59的datetime对象再本地化:

import pytz
from datetime import datetime

utc = pytz.UTC
# 直接构造当日23:59:59的datetime
dt_close = utc.localize(datetime(2024, 10, 31, 23, 59, 59))
print(dt_close)

输出:

2024-10-31 23:59:59+00:00

如果日期字符串是动态输入的,可先解析日期部分再替换时间:

import dateutil
import pytz
from datetime import datetime

utc = pytz.UTC
date_str = '2024-10-31'
# 解析日期部分提取年、月、日
parsed_date = dateutil.parser.parse(date_str).date()
# 构造闭市时间
dt_close = utc.localize(datetime(parsed_date.year, parsed_date.month, parsed_date.day, 23, 59, 59))
print(dt_close)

内容的提问来源于stack exchange,提问作者Hari Addepalli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:07:03