def parseDT(self, datetimeString, sourceTime=None,<EOL>tzinfo=None, version=None):
<EOL>sourceTime = getattr(sourceTime, '<STR_LIT>', (lambda: sourceTime))()<EOL>localize = getattr(<EOL>tzinfo,<EOL>'<STR_LIT>',<EOL>(lambda dt: dt.replace(tzinfo=tzinfo)),  <EOL>)<EOL>time_struct, ret_code = self.parse(<EOL>datetimeString,<EOL>sourceTime=sourceTime,<EOL>version=version)<EOL>dt = localize(datetime.datetime(*time_struct[:<NUM_LIT:6>]))<EOL>return dt, ret_code<EOL>
C{datetimeString} is as C{.parse}, C{sourceTime} has the same semantic
meaning as C{.parse}, but now also accepts datetime objects.  C{tzinfo}
accepts a tzinfo object.  It is advisable to use pytz.


@type  datetimeString: string
@param datetimeString: date/time text to evaluate
@type  sourceTime:     struct_time, datetime, date, time
@param sourceTime:     time value to use as the base
@type  tzinfo:         tzinfo
@param tzinfo:         Timezone to apply to generated datetime objs.
@type  version:        integer
@param version:        style version, default will use L{Calendar}
                       parameter version value

@rtype:  tuple
@return: tuple of: modified C{sourceTime} and the result flag/context

see .parse for return code details.