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

如何使用Python获取次日凌晨1:30的时间?是否有更优实现方案?

优化实现方案

你的现有写法逻辑是正确的,只是可读性还有提升空间,推荐以下更简洁易读的实现方式:

最通用的无依赖实现(兼容所有Python3版本)

直接把目标时间明确写到datetime.time参数中,不需要在timedelta里拆分时分参数,别人读代码时一眼就能看出目标时间是次日1:30:

import datetime

# 先取次日日期,再直接组合1:30的时间对象
next_day = datetime.date.today() + datetime.timedelta(days=1)
target = datetime.datetime.combine(next_day, datetime.time(hour=1, minute=30))

如果偏好一行写法也可以,不过可读性会稍弱:

target = datetime.datetime.combine(datetime.date.today() + datetime.timedelta(1), datetime.time(1,30))

带时区的更严谨实现(Python3.9+ 支持)

如果你的场景需要避免本地时区歧义,可以明确指定时区,防止夏令时、系统时区变更导致的计算错误:

import datetime
from zoneinfo import ZoneInfo

# 替换为你实际使用的时区
TARGET_TZ = ZoneInfo("Asia/Shanghai")
today = datetime.datetime.now(tz=TARGET_TZ).date()
target = datetime.datetime.combine(today + datetime.timedelta(days=1), datetime.time(1,30), tzinfo=TARGET_TZ)

优化点说明

  • 可读性大幅提升:直接声明目标时间为1点30分,不需要从timedelta的多个参数中拆分计算时分
  • 可维护性更强:后续如果需要调整时间点,只需要修改datetime.time的参数即可,不需要调整timedelta的配置
  • 性能和原写法完全一致:底层逻辑没有变化,只是写法更符合直觉,没有额外的运行开销

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:06:05