【问题标题】:get lastweek dates using python?使用 python 获取上周日期?
【发布时间】:2015-02-12 13:22:17
【问题描述】:

我正在尝试使用 python 获取上周的日期。

如果日期是:2014 年 10 月 10 日意味着

应该是打印

10 OCT 2014, 09 OCT 2014, 08 OCT 2014, 07 OCT 2014, 06 OCT 2014, 05 OCT 2014, 04 OCT 2014

我试过了:

today = (10 OCT 2014)

dates = [today + datetime.timedelta(days=i) for i in range(-4 - today.weekday(), 4 - today.weekday())]
print dates

我收到此错误:

exceptions.AttributeError: 'unicode' object has no attribute 'weekday'

【问题讨论】:

  • 我无法在 Python 2.7 中重现,你能说明你是如何初始化你的 today 变量的吗?您是否使用datetime 对象像这样datetime.date(2014, 10, 10) 创建它?错误消息似乎表明您不是。
  • 今天 = datetime.date.today()

标签: python datetime python-3.x scrapy python-datetime


【解决方案1】:

您的问题和算法似乎不对应。这就是你所追求的吗?

from datetime import date
from datetime import timedelta
today = date(2014, 10, 10) # or you can do today = date.today() for today's date

for i in range(0,7):
    print (today - timedelta(days=i))

【讨论】:

    【解决方案2】:

    @MarkG 一针见血,但如果您希望获得所要求的确切输出,这将起作用:

    import datetime
    
    today = '10 OCT 2014'
    
    dates = [datetime.datetime.strptime(today, '%d %b %Y') - datetime.timedelta(days=i) for i in range(7)]
    print ', '.join([day.strftime('%d %b %Y').upper() for day in dates])
    

    请注意,您需要将今天的日期作为字符串传递。

    【讨论】:

    • 我的输入是 today=item[xxxx] 在这里我必须使用 item[xxxxx] 和系统当前日期检查未来和过去日期以计算上周.. 如果日期具有未来和过去日期应该加标。
    猜你喜欢
    • 2021-09-29
    • 1970-01-01
    • 2014-02-04
    • 2015-05-12
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多