src/cm/utils/timezone.py
changeset 275 5339e9e0e186
parent 0 40c8f766c9b8
equal deleted inserted replaced
274:e49623f99d02 275:5339e9e0e186
     1 from datetime import timedelta
     1 from datetime import timedelta
     2 from pytz import timezone, utc
     2 from pytz import timezone, utc, UnknownTimeZoneError
     3 from django.conf import settings
     3 from django.conf import settings
     4 
     4 
     5 local_tz = timezone(settings.TIME_ZONE)
     5 local_tz = timezone(settings.TIME_ZONE)
     6 
     6 
     7 def request_tz_convert(date, request):
     7 def request_tz_convert(date, request):
    21             utc_offset = int(tz)
    21             utc_offset = int(tz)
    22             utc_time = system_local_date.astimezone(utc)
    22             utc_time = system_local_date.astimezone(utc)
    23             res = utc.normalize(utc_time + timedelta(hours=utc_offset))
    23             res = utc.normalize(utc_time + timedelta(hours=utc_offset))
    24             return res
    24             return res
    25         except:
    25         except:
    26             # real timezone
    26             try:
    27             timez = timezone(tz)
    27                 # real timezone
    28             local_date = system_local_date.astimezone(timez)
    28                 timez = timezone(tz)
    29             return local_date            
    29                 local_date = system_local_date.astimezone(timez)
       
    30                 return local_date
       
    31             except UnknownTimeZoneError:
       
    32                 # fall back to date
       
    33                 return date
       
    34                         
    30     else:
    35     else:
    31         return date        
    36         return date