datetime.datetime输入错误

时间:2016-02-24 18:03:32

标签: python python-3.x datetime menu

我有一个菜单,我在其中输入开始日期和结束日期。当我在下面的菜单项中选择选项2时出现错误。

    ### Take action as per selected menu-option ###
    if choice == 1:  # Start with default window
        print ("Starting Backtest from 2014-1-1 until 2015-12-31")
        start = datetime.datetime(2014,1,1)
        start = start.date()
        end   = datetime.datetime(2015,12,31)
        end   = end.date()
    elif choice == 2:
        ## Get input ###
        start = input('Enter Start date [Format: YYYY,M,D  -  2014,1,23] : ')
        start = datetime.datetime(start)
        start = start.date()
        end   = input('Enter End date   [Format: 2015,8,23] : ')
        end   = datetime.datetime(end)
        end   = end.date()

我的菜单项1是如何工作的,但是2却没有?

错误是

TypeError: an integer is required (got type str)

请帮忙

由于

2 个答案:

答案 0 :(得分:0)

您可能会收到该错误,因为您正在将字符串与整数进行比较。您可以在两者之间进行更改

>>> int('123')
>>> 123
>>> str(123)
>>> '123'

答案 1 :(得分:0)

好的 - 经过一番搜索后,我发现这个问题帮我找到了正确的答案。 TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'Text'

所以我需要这段代码来让我的脚本顺利运行。在选择2下,您会看到带有strptime和strftime的新代码。显然我需要通过strptime才能进入strftime!

    ### Take action as per selected menu-option ###
    if choice == 1:  # Start with default window
        print ("Starting Backtest from 2014-1-1 until 2015-12-31 (2 years)")
        start = datetime.datetime(2014,1,1)
        start = start.date()
        end   = datetime.datetime(2015,12,31)
        end   = end.date()
    elif choice == 2:
        ## Get input ###
        start_input = input('Enter Start date [Format: YYYY,M,D  -  2014,01,23] : ')
        start_dt_obj = datetime.datetime.strptime(start_input, '%Y,%m,%d')
        start = datetime.datetime.strftime(start_dt_obj, '%Y,%m,%d')

        end_input   = input('Enter End date   [Format: YYYY,M,D  -  2015,08,23] : ')
        end_dt_obj = datetime.datetime.strptime(end_input, '%Y,%m,%d')
        end = datetime.datetime.strftime(end_dt_obj, '%Y,%m,%d')

然而,这使我的代码运行,但我想将日期保留为日期。选择2代码将我的日期保存为不同于选择1的str。嗯...