Bonjour !
Je bute depuis quelques heures sur ce qui semble être un bug énorme
de l'objet wx.DateTime de la librairie wxpython
Voici le code incriminé:
les valeurs sont 2007 pour year
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 year=d[0] month=d[1] day=d[2] datinit=wx.DateTimeFromDMY(day,month,year) print month print datinit.GetMonth() print str(datinit)
09 pour month
et 15 pour day
Voici l'affichage:
Autrement le mois est passé à 10 !!!2007-09-15
9
9
10/15/07 00:00:00
Maintenant si je fais un
datinit.SetMonth(month)
le mois affiché reste à 10
Par contre si je demande d'afficher
datinit.GetMonth()
Il affiche bien 9 ?????????
J'ai donc pu observer ce phénomène pour month allant de 0 (valeur impossible)
jusqu'à 11.
Pour 12 il remplace par le mois courant ???
Très ennuyeux !! Parce que j'utilise cela pour initialiser un objet datepicker, il s'agit de mettre à jour des fiches d'une base de données.
La date récupérée est donc toujours fausse. Je peux évidemment contourner la difficulté en trichant sur le mois, mais au cours d'un update de wxpython ou le bug sera corrigé, plus rien ne marchera.
J'ai donc essayé un bug-fix provisoire, de ce genre:
Mais cela ne marche pas parce que le GetMonth() est inexplicablement correct!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 # correction de bug if datinit.GetMonth()!=month: datinit=wx.DateTimeFromDMY(day,month-1,year) # fin de correction
Si vous pouvez m'éclairer.
Merci
Partager