12345678910111213141516171819202122 |
- import datetime
- from django.utils import timezone
- def to_date(value):
- """
- Function which knows how to convert timezone-aware :py:class:`~datetime.datetime` objects to
- :py:class:`~datetime.date` objects, according to guidelines from `Django documentation`_.
- .. _Django documentation: https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#troubleshooting
- """
- assert isinstance(value, (datetime.date, datetime.datetime))
- if isinstance(value, datetime.date) and not isinstance(value, datetime.datetime):
- return value
- if timezone.is_aware(value) and timezone.pytz:
- current_timezone = timezone.get_current_timezone()
- return current_timezone.normalize(value.astimezone(current_timezone)).date()
- else:
- return value.date()
|