【问题标题】:how get the last week as start date and end date based on date in current week in scrapy如何根据scrapy中本周的日期将上周作为开始日期和结束日期
【发布时间】:2015-04-09 03:01:53
【问题描述】:

如何根据当前周scrapy(周一-周日)中的日期获取上周的开始日期和结束日期

例如:如果日期是 04-feb-15,那么结果应该是 start_date = Monday(26-jan-1015) end_date = Sunday(1-feb-15)

如果日期是 27-feb-15, ,那么结果应该是 start_date = Monday(16-feb-1015) end_date = (22-feb-15)

我已经尝试过了:

date =aaa.xpath('xxx')
if date < datetime.datetime.today():

【问题讨论】:

标签: python date datetime scrapy python-datetime


【解决方案1】:

您可以为此使用datetime.timedelta
它有一个可选的weeks 参数,您可以将其设置为-1,这样它就会从date 中减去7 天。

您还必须减去当前日期的工作日(以及另一个,甚至从星期一开始的那一天是0)。

import datetime

def previous_week_range(date):
    start_date = date + datetime.timedelta(-date.weekday(), weeks=-1)
    end_date = date + datetime.timedelta(-date.weekday() - 1)
    return start_date, end_date

previous_week_range(datetime.date(2015, 2, 9))  # 2015-02-02, 2015-02-08
previous_week_range(datetime.date(2015, 2, 13))  # 2015-02-02, 2015-02-08
previous_week_range(datetime.date(2015, 2, 16))  # 2015-02-09, 2015-02-15

【讨论】:

  • previous_week_range 采用datetime 对象(如datetime.date(2015, 2, 9),而不是列表或字符串。您应该先将xpath 结果转换为日期时间对象。您可以使用time.strptime function 到将字符串转换为日期时间对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
相关资源
最近更新 更多