Python 为今天的日期验证包含 start_date 和 end_date 的字符串

Python validate String containing start_date and end_date for today's date

我有一个包含 start_dateend_date 的字符串,由 / 分隔,如下所示

2017-01-30T12:00-0300/2017-03-30T00:00-0300

这里的T代表时间

我想检查这个日期是否不超过今天,做点什么。

我试过的-

sale_price_effective_date = current_row['sale_price_effective_date'].split("/")
            start_date = sale_price_effective_date[0]
            end_date = sale_price_effective_date[1]
            print start_date
            print end_date

这里sale_price_effective_date是包含[=36​​=]和end_date的字符串。

我愿意-

if (end_date-start_date)>datetime.now():
      //do something

请帮忙。期待您的建议。

这个怎么样:

In [1]: from dateutil import parser

In [2]: s = "2017-01-30T12:00-0300/2017-03-30T00:00-0300"

In [3]: start, end = s.split("/")

In [4]: start_date = parser.parse(start)

In [5]: start_date
Out[5]: datetime.datetime(2017, 1, 30, 12, 0, tzinfo=tzoffset(None, -10800))

In [6]: end_date = parser.parse(end)

In [7]: start_date > end_date
Out[7]: False

编辑:

要检查今天的日期是否在开始和结束之间,您可以这样做:

In [19]: from datetime import datetime

In [20]: start_date < datetime.now(tz=start_date.tzinfo) < end_date
Out[20]: False

如MYGz所示。

你可以这样做:

import dateutil
from datetime import datetime

a = "2017-01-30T12:00-0300/2017-03-30T00:00-0300"
a = map(dateutil.parser.parse, a.split('/'))

if datetime.now(tz=a[1].tzinfo) < a[1]:
    print "Todays date is less than end date"
else:
    print "Todays date is greater than end date"

如果今天的日期时间可以小于或等于结束日期时间,则在比较中添加一个额外的等号=,如下所示:

datetime.now(tz=a[1].tzinfo) <= a[1]