获取一周中第一天的日期

时间:2016-09-11 23:30:28

标签: python datetime

我在一张有日期字段的表中有记录。

我想查询表格,以便返回的记录只是给定周的星期日。

我怎样才能使用python' datetime库实现这一目标?感谢。

2 个答案:

答案 0 :(得分:12)

获取一周的开始日期:

datetime.today() - datetime.timedelta(days=datetime.today().isoweekday() % 7)

答案 1 :(得分:9)

感谢@PavSidhu和该答案的编辑。进一步建立答案:

如果一周的开始时间是星期日

import datetime
datetime.datetime.today() - datetime.timedelta(days=datetime.datetime.today().isoweekday() % 7)

如果一周的开始时间是星期一

import datetime
datetime.datetime.today()  - datetime.timedelta(days=datetime.datetime.today().weekday() % 7)

如果要计算未来日期的一周开始时间

import datetime
from dateutil.relativedelta import relativedelta

# 5 days ahead of today
future_date = datetime.datetime.today() + relativedelta(days=5)

# If Start of Week is Monday
print(future_date - datetime.timedelta(days=future_date.weekday() % 7))

# If start of week is Sunday
print(future_date - datetime.timedelta(days=future_date.isoweekday() % 7))

差异:当一周的开始时间是星期一时,我们使用的是weekday()而不是isoweekday()

  • isoweekday()-星期一为1,星期日为7
  • weekday()-星期一为0,星期日为6