<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def less_than(self, less_than):
 """Adds new `<` condition :param less_than: str or datetime compatible object (naive UTC datetime or tz-aware datetime) :raise: - QueryTypeError: if `less_than` is of an unexpected type """


        if hasattr(less_than, 'strftime'):
            less_than = datetime_as_utc(less_than).strftime('%Y-%m-%d %H:%M:%S')
        elif isinstance(less_than, six.string_types):
            raise QueryTypeError('Expected value of type `int` or instance of `datetime`, not %s' % type(less_than))

        return self._add_condition('<', less_than, types=[int, str])