def convert(self, value): if value is None: return None if isinstance(value, six.string_types): match = DATETIME_REGEX.search(value) if match: data = match.groupdict() return make_aware( datetime_safe.datetime( int(data["year"]), int(data["month"]), int(data["day"]), int(data["hour"]), int(data["minute"]), int(data["second"]), ) ) else: raise ApiFieldError( "Datetime provided to '%s' field doesn't appear to be a valid datetime string: '%s'" % (self.instance_name, value) ) return value
def hydrate(self, bundle): value = super(DateTimeField, self).hydrate(bundle) if value and not hasattr(value, 'year'): try: # Try to rip a date/datetime out of it. value = make_aware(parse(value)) except ValueError: pass return value
def convert(self, value): if value is None: return None if isinstance(value, basestring): match = DATETIME_REGEX.search(value) if match: data = match.groupdict() return make_aware(datetime_safe.datetime(int(data['year']), int(data['month']), int(data['day']), int(data['hour']), int(data['minute']), int(data['second']))) else: raise ApiFieldError("Datetime provided to '%s' field doesn't appear to be a valid datetime string: '%s'" % (self.instance_name, value)) return value
def convert(self, value): if value is None: return None if isinstance(value, six.string_types): try: year, month, day = value[:10].split('-') hour, minute, second = value[11:19].split(':') return make_aware(datetime_safe.datetime(int(year), int(month), int(day), int(hour), int(minute), int(second))) except ValueError: raise ApiFieldError("Datetime provided to '%s' field doesn't appear to be a valid datetime string: '%s'" % (self.instance_name, value)) return value
def convert(self, value): if value is None: return None if isinstance(value, six.string_types): try: year, month, day = value[:10].split('-') hour, minute, second = value[10:18].split(':') return make_aware(datetime_safe.datetime(int(year), int(month), int(day), int(hour), int(minute), int(second))) except ValueError: raise ApiFieldError("Datetime provided to '%s' field doesn't appear to be a valid datetime string: '%s'" % (self.instance_name, value)) return value
def hydrate(self, bundle): value = super(DateTimeField, self).hydrate(bundle) if value and not hasattr(value, 'year'): if isinstance(value, six.string_types): try: # Try to rip a date/datetime out of it. value = make_aware(parse(value)) except (ValueError, TypeError): raise ApiFieldError("Datetime provided to '%s' field doesn't appear to be a valid datetime string: '%s'" % (self.instance_name, value)) else: raise ApiFieldError("Datetime provided to '%s' field must be a string: %s" % (self.instance_name, value)) return value
def hydrate(self, bundle): value = super(DateField, self).hydrate(bundle) if value and not hasattr(value, 'year'): try: # Если указать is_dst=None, будет исключение # NonExistentTimeError, при указании даты 1984-04-01 value = make_aware(parse(value), is_dst=False) if hasattr(value, 'hour'): value = value.date() except ValueError: pass return value
def convert(self, value): if value is None: return None if isinstance(value, basestring): match = DATETIME_REGEX.search(value) if match: data = match.groupdict() return make_aware(datetime_safe.datetime(int(data['year']), int(data['month']), int(data['day']), int(data['hour']), int(data['minute']), int(data['second']))) else: raise ApiFieldError("Datetime provided to '%s' field doesn't appear to be a valid datetime string: '%s'" % (self.instance_name, value)) if isinstance(value, datetime.datetime): if DATABASE_IS_MYSQL: # MySQL does not store fractions of seconds; create a new datetime with microseconds set to 0 return datetime.datetime(year=value.year, month=value.month, day=value.day, hour=value.hour, minute=value.minute, second=value.second, tzinfo=value.tzinfo) return value