存储日期以跳过python配置文件

时间:2016-10-31 05:53:07

标签: python datetime config

在我的配置中我有

SKIP_DATES = ['2016-02-11', '2016-02-13']

然后在我的剧本中我有

if dt.date() in config.SKIP_DATES:
    print "Skipping date: {0}".format(dt.date())
    continue

但这不起作用,因为dt.date是一个datetime.date对象,而config.SKIP_DATES是一个'字符串日期'列表。

我怎样才能轻松解决这个问题?

有人可以为这篇文章建议一个更好的名字吗?

2 个答案:

答案 0 :(得分:0)

您可以将dt日期时间对象更改为字符串:

from datetime import datetime

date_object = datetime(2016, 2, 11)
print(date_object.strftime("%Y-%m-%d")) % prints string: 2016-02-11

然后检查它是否在日期字符串数组中。或者说它是相反的。

答案 1 :(得分:0)

您的日期格式与date.isoformat()的格式相同:

date.isoformat()
Return a string representing the date in ISO 8601 format, ‘YYYY-MM-DD’. 
For example, date(2002, 12, 4).isoformat() == '2002-12-04'.

所以你可以这样做:

if dt.date().isoformat() in config.SKIP_DATES:
    print "Skipping date: {0}".format(dt.date())
    continue

请注意datetime.date的字符串表示使用相同的函数:

date.__str__()
For a date d, str(d) is equivalent to d.isoformat().

这就是print dt.date()提供'2016-10-31'输出的原因。当然,您可以使用集合而不是列表来存储跳过日期。