Python - 将字符串中的日期与今天的日期进行比较

3

目标:

  • 将字符串中的日期与今天的日期进行比较

问题:

  • 出现以下错误:ValueError: unconverted data remains: 12:00:00

问题:

  • 如何修复这个错误?
  • 如何删除字符串中的时间元素?

代码:

from datetime import date
from datetime import time
from datetime import datetime

dateTimeStart = "2014-01-01 12:00:00"

def main():
    dateTime1 = datetime.strptime(dateTimeStart, "%Y-%m-%d")
    today = date.today()

    if dateTime1 > "today":
        print "No"

if __name__ == "__main__":
  main();

为什么不在模式中包含时间,然后忽略它呢?或者切割字符串以去除它?或者在空格处分割字符串? - jonrsharpe
如果您不想计算小时、分钟或秒,则定义dateTimeStart = "2014-01-01",并且datetime.strptime(dateTimeStart, "%Y-%m-%d")可以正常工作,而无需ValueError。您可以使用dateTimeStart = dateTimeStart.split()[0]自动进行转换。 - user4322779
1个回答

10

您需要解析时间部分:

datetime.strptime(dateTimeStart, "%Y-%m-%d %H:%M:%S")

然后你可以这样比较你的日期:

if dateTime1.date() > date.today():
    print "No"

date() 函数返回一个 datetime 对象的日期。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接