2016-05-30 2 views

Répondre

5

Python documentation on the datetime module, en particulier les Etats classe datetime que l'objet datetime peut avoir des valeurs d'attributs dans la plage suivante:

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 

Ce module définit également les constantes suivantes:

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 .

qui signifie que vous ne pouvez pas utiliser ces (datetime(0000, 00, 00)) paramètres dans le constructeur de la classe datetime, d'où la ValueError indiquant que l'année donnée est hors de portée

Depuis vous ne pouvez pas construire un objet datetime avec les arguments suivants en premier lieu, il n'y a aucun moyen d'appeler la méthode strftime dessus.

0

Vous ne pouvez pas utiliser un an/mois/jour de la valeur 0.

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

'1989-01-01'

0

Il est hors de portée - il n'y a pas de year 0 dans l'ère commune, ni de mois ou de jour zéro dans le calendrier grégorien. Au-delà, si time_t est 32 bits, vous ne pourrez peut-être pas traiter les années antérieures à 1902 (propriété de Unix time).

Si vous voulez vraiment produire une chaîne contenant des zéros comme exemple de format, vous pouvez en générer un avec une date de fonctionnement (par exemple 99-09-09) et remplacer les chiffres par des zéros.

En général, je préfère les dates d'échantillons à partir desquelles vous pouvez déduire les champs par leurs valeurs, cependant, comme 1980-10-30. Cela ne laisse pas de place pour confondre jour et mois.

0

La date, le mois et l'année ne peuvent pas être 0. Si vous souhaitez donner une valeur par défaut, pensez à lui donner une valeur antidatée comme le 1er janvier 1970 ou toute autre date dont l'année est comprise entre 1 et 9999 1-30 (28,29,31 selon le cas) et mois compris entre 1 et 12