datetime.fromstr() - how?
Martin Bless
m.bless at gmx.de
Thu Jul 22 04:43:41 EDT 2004
Dan Bishop <> wrote in
<ad052e5c.0407201114.71ba95a0 at posting.google.com>:
>
>import datetime
>def strToDate(ymd):
> return datetime.date(*map(int, ymd.split('-')))
Yes, thanks, I like your solution better. This way I don't have to use
'time' as a second module. For those interested, here's what I'm using
now.
It's a pity the 'datetime' module lacks 'time.strptime()'
functionality. In contrast it does provide 'strftime()' methods.
mb - Martin
# date,time,datetime,timestamp handling for MySQLdb
# independant from mxdate
class mysql_date(datetime.date):
"Represent and convert 'YYYY-MM-DD'-like date values."
def fromstr(Cls,s):
try:
return Cls(*map(int,s.split('-'))[:3])
except:
return None
fromstr = classmethod(fromstr)
class mysql_time(datetime.time):
"Represent and convert 'HH:MM:SS'-like time values."
def fromstr(Cls,s):
"Construct instance from string."
try:
return Cls(*map(int,s.split(':'))[:3])
except:
return None
fromstr = classmethod(fromstr)
class mysql_datetime(datetime.datetime):
"Represent and convert 'YYYY-MM-DD HH:MM:SS'-like datetime
values."
def fromstr(Cls,s):
"Initialize instance from string."
try:
return Cls(*map(int,s.replace('-',' ').replace(':','
').split())[:6])
except:
return None
fromstr = classmethod(fromstr)
class mysql_timestamp(datetime.datetime):
"Represent and convert 'YYYYMMDDHHMMSS'-like timestamp values."
def fromstr(Cls,s,f='%Y%m%d%H%M%S'):
"Initialize instance from string."
try:
return
Cls(*map(int,[s[0:4],s[4:6],s[6:8],s[8:10],s[10:12],s[12:14]]))
except:
return None
fromstr = classmethod(fromstr)
def __str__(self):
return self.strftime('%Y%m%d%H%M%S')
myconv = MySQLdb.converters.conversions.copy()
myconv.update({
FIELD_TYPE.TIMESTAMP : mysql_timestamp.fromstr,
FIELD_TYPE.DATETIME : mysql_datetime.fromstr,
FIELD_TYPE.DATE : mysql_date.fromstr,
FIELD_TYPE.TIME : mysql_time.fromstr,
})
More information about the Python-list
mailing list