diff options
Diffstat (limited to 'lib/python2.7/site-packages/south/utils/datetime_utils.py')
-rw-r--r-- | lib/python2.7/site-packages/south/utils/datetime_utils.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/python2.7/site-packages/south/utils/datetime_utils.py b/lib/python2.7/site-packages/south/utils/datetime_utils.py new file mode 100644 index 0000000..a416935 --- /dev/null +++ b/lib/python2.7/site-packages/south/utils/datetime_utils.py @@ -0,0 +1,28 @@ +from datetime import * + +import django +from django.conf import settings + +if django.VERSION[:2] >= (1, 4) and getattr(settings, 'USE_TZ', False): + from django.utils import timezone + from datetime import datetime as _datetime + + class datetime(_datetime): + """ + A custom datetime.datetime class which acts as a compatibility + layer between South and Django 1.4's timezone aware datetime + instances. + + It basically adds the default timezone (as configured in Django's + settings) automatically if no tzinfo is given. + """ + def __new__(cls, year, month, day, + hour=0, minute=0, second=0, microsecond=0, tzinfo=None): + + dt = _datetime(year, month, day, + hour, minute, second, microsecond, + tzinfo=tzinfo) + if tzinfo is None: + default_timezone = timezone.get_default_timezone() + dt = timezone.make_aware(dt, default_timezone) + return dt |