Как получить 09 как целое число в python (odoo)? - PullRequest
0 голосов
/ 05 июля 2018

Я пробовал этот код, чтобы получить сентябрь месяц как 09 в моем коде, но позже я узнал, что 09 не является приемлемым в Python. Но может отображаться только в виде строки. Мой вопрос, как отобразить 09 как целое число?

Мой код:

    september_month = dt.datetime(int(self.year.name),09,30)   
    print september_month

Ошибка: Неверный токен 09 и ValueError: день выходит за пределы диапазона месяца

Эта программа на Python работает в версии odoo 10 python2.7

Ответы [ 4 ]

0 голосов
/ 09 июля 2018

В Python (в любой версии) литерал типа 09 интерпретируется как восьмеричный литерал. Поэтому значение 9 недопустимо.

Если вы действительно хотите увидеть 09, вы можете написать строку и преобразовать в целое число, используя int("09"). В вашем коде:

september_month = dt.datetime(int(self.year.name),int("09"),int("30"))   
print september_month

Не уверен, действительно ли это помогает удобочитаемости.

0 голосов
/ 05 июля 2018

https://docs.python.org/3.6/library/datetime.html

Datetime знает, что такое 9, не нужно ставить 09

0 голосов
/ 05 июля 2018

Человек, это работает, ваша проблема в том, что нет 31 сентября

Я пытался в консоли

0 голосов
/ 05 июля 2018

В Python 3 невозможно записать int значения как 01,02,09 и т. Д.

...