2016-05-30 5 views

ответ

5

Питон documentation on the datetime module, в частности datetime класса утверждает, что datetime объекта может иметь значение атрибутов в следующем диапазоне:

MINYEAR <= year <= MAXYEAR 
1 <= month <= 12 
1 <= day <= number of days in the given month and year 
0 <= hour < 24 
0 <= minute < 60 
0 <= second < 60 
0 <= microsecond < 1000000 

Этот модуль также определяет следующие константы:

datetime.MINYEAR 

The smallest year number allowed in a date or datetime object. MINYEAR is 1 .

datetime.MAXYEAR 

The largest year number allowed in a date or datetime object. MAXYEAR is 9999 .

, что означает, что вы не можете использовать эти (datetime(0000, 00, 00)) параметры в конструкторе datetime класса, следовательно, ValueError о том, что данный год находится вне диапазона

С вы не можете создать объект datetime со следующими аргументами, в первую очередь, нет способа вызвать метод strftime.

0

Вы не можете использовать год/месяц/день значения 0.

edob = datetime(1989, 1, 1) 
dob = dob.strftime("%Y-%m-%d") 

'1989-01-01'

0

Это вне пределов досягаемости - в общей эре отсутствует year 0, а также ни один день или день в григорианском календаре. Кроме того, если time_t 32-бит, вы не сможете обрабатывать годы до 1902 года (свойство Unix time).

Если вы действительно хотите создать в нем строку с нулями в качестве примера формата, вы можете сгенерировать ее с некоторой функциональной датой (например, 99-09-09) и заменить цифры нулями.

В целом я предпочитаю образцы дат, из которых вы можете вывести поля по их значениям, однако, например, в 1980-10-30. Это не оставляет места для запутывания дня и месяца.

0

Дата, месяц и год не могут быть 0. Если вы хотите дать какое-то значение по умолчанию, подумайте о том, чтобы дать ему заднюю ценность, например, 1 января 1970 года или любую другую дату, имеющую год в диапазоне 1-9999, дату в диапазоне 1-30 (28,29,31 в зависимости от случая) и месяц в диапазоне 1-12

 Смежные вопросы

  • Нет связанных вопросов^_^