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

如何使用Python获取本周一上午6:30的对应时间?

Python 实现获取本周一6:30时间点方案

标准库实现(无需安装第三方依赖)

核心逻辑是通过datetime模块的weekday()方法判断当前周几,计算偏移得到周一的日期后设置指定时间:

import datetime

def get_monday_630() -> datetime.datetime:
    now = datetime.datetime.now()
    # weekday()返回值规则:0=周一,1=周二,...,6=周日
    days_offset = now.weekday()
    # 得到本周一0点时间
    monday_start = now - datetime.timedelta(days=days_offset)
    # 设置时间为6:30
    target = monday_start.replace(hour=6, minute=30, second=0, microsecond=0)
    
    # 边界处理:如果当前时间早于本周一6:30,自动返回上周一的6:30
    # 不需要该逻辑可直接删除下面两行
    if now < target:
        target -= datetime.timedelta(days=7)
    return target

效果验证

和需求示例完全匹配:

  • 当前时间为2021/6/28 15:00,返回值为2021-06-28 06:30:00
  • 当前时间为2021/7/2 15:00,返回值为2021-06-28 06:30:00

可选:第三方库python-dateutil简化实现

如果项目允许安装第三方依赖,用python-dateutil的相对时间偏移逻辑可以更简洁实现:

  1. 先安装依赖:pip install python-dateutil
  2. 代码实现:
from datetime import datetime
from dateutil.relativedelta import relativedelta, MO

def get_monday_630() -> datetime.datetime:
    now = datetime.now()
    # 直接取最近已过的周一,设置时间为6:30
    return now + relativedelta(weekday=MO(-1), hour=6, minute=30, second=0, microsecond=0)

注意事项

  • 若需要使用UTC时间,将代码中的datetime.now()替换为datetime.utcnow()即可
  • 如果业务逻辑不需要处理周一6:30前的边界(即只要是当前自然周,不管是否到周一6:30都取本周一的时间),删掉标准库实现中的边界判断代码即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 08:54:08