from datetime import datetime class User: def __init__(self, username, mail, date_of_birth, gender, password): self.username = username self.mail = mail self.date_of_birth = datetime.date(date_of_birth) self.gender = gender self.password = password def get_username(self): return self.username def get_mail(self): return self.mail def get_date_of_birth(self): return self.date_of_birth def get_gender(self): return self.gender def get_password(self): self.password Matt = User("Matterson", "matt@gmail.com", 21.12.1999 , "Password987")
So how do I make the string a date?
The error:
Matt = User("Matterson", "matt@gmail.com", 21.12.1999 , "Password987") ^ SyntaxError: invalid syntax
Advertisement
Answer
When you’re creating your object you have to enclose the value inside quotes:
User("Matterson", "matt@gmail.com", "21.12.1999", "Password987")
Just 21.12.1999
by itself isn’t a valid Python definition of anything.
You can then use strptime
of the datetime.datetime
module to parse it into a datetime, and retrieve the date from that value:
self.date_of_birth = datetime.datetime.strptime(date_of_birth, "%d.%m.%Y").date()
The %d
corresponds to the day, the %m
the month and %Y
to the year in the string being sent in. Calling date()
on the datetime drops the time-part and returns a pure date instead.