Checking for valid date input and convert appropriately

Ferrous Cranus nikos.gr33k at gmail.com
Thu Feb 21 16:22:15 EST 2013


Τη Πέμπτη, 21 Φεβρουαρίου 2013 10:14:13 μ.μ. UTC+2, ο χρήστης MRAB έγραψε:
> On 2013-02-21 19:38, Ferrous Cranus wrote:
> 
> > import datetime from datetime
> 
> 
> 
> Should be:
> 
> 
> 
> from datetime import datetime
> 
> 
> 
> >
> 
> > try:
> 
> >      datetime.strptime( date, '%d %m %Y' )
> 
> 
> 
> That parses the date and discards the result.
> 
> 
> 
> >      date = date.strptime( '%Y-%m-%d' )
> 
> 
> 
> 'date' is a string, it doesn't have a 'strptime' method.
> 
> 
> 
> When you parsed the date you got a datetime object; _that_ has the
> 
> 'strptime' method.

I don't need to store the date i just want to make sure is entered correctly.
I would like to have the user type the date like

21 02 2013
and then convert it to 2013-02-21 because thats how mysql wants the date in order to store it.
Please show me how to write this.

Also, can you show me how to write it that if so even if the user entered date is wrong it doesn't just crash the cgi-script?i know i can use tr: expect: but i want to avoid it, somehow i need to check the date in the same if statemnt like i do with the other user defined varibles for validity.

if( task and ( price and price.isdigit() and price.__len__() <= 3 ) and ( date and datetime.strptime(date, '%Y-%m-%d') ) ):

Thanks.



More information about the Python-list mailing list