src/cm/utils/timezone.py
author gibus
Thu, 03 Dec 2009 16:24:33 +0100
changeset 18 f0f9929a4900
parent 0 40c8f766c9b8
child 275 5339e9e0e186
permissions -rw-r--r--
add sudo in ubuntu examples for commands to be run as root add example of postrgesql database creation

from datetime import timedelta
from pytz import timezone, utc
from django.conf import settings

local_tz = timezone(settings.TIME_ZONE)

def request_tz_convert(date, request):
    return tz_convert(date, request.session.get('tz',None))

def tz_convert(date, tz):
    """
    Convert date to time zone
    tz can be;
        - '-2' (relative to utc)
        - 'Paris/Europe' real timezone like (cf pytz)
    """
    if tz:
        system_local_date = local_tz.localize(date)
        try:
             # simple utc delta?
            utc_offset = int(tz)
            utc_time = system_local_date.astimezone(utc)
            res = utc.normalize(utc_time + timedelta(hours=utc_offset))
            return res
        except:
            # real timezone
            timez = timezone(tz)
            local_date = system_local_date.astimezone(timez)
            return local_date            
    else:
        return date