src/ztfy/utils/timezone/__init__.py
branchZTK-1.1
changeset 214 91a1aa280326
parent 148 d3668ecd9137
child 218 e8bb333bf7c5
equal deleted inserted replaced
213:ec49fc38bcb4 214:91a1aa280326
    15 
    15 
    16 __docformat__ = "restructuredtext"
    16 __docformat__ = "restructuredtext"
    17 
    17 
    18 # import standard packages
    18 # import standard packages
    19 import pytz
    19 import pytz
       
    20 from datetime import date
    20 
    21 
    21 # import Zope3 interfaces
    22 # import Zope3 interfaces
    22 from zope.interface.common.idatetime import ITZInfo
    23 from zope.interface.common.idatetime import ITZInfo
    23 from zope.publisher.interfaces.browser import IBrowserRequest
    24 from zope.publisher.interfaces.browser import IBrowserRequest
    24 
    25 
    46 
    47 
    47 
    48 
    48 def tztime(value):
    49 def tztime(value):
    49     if not value:
    50     if not value:
    50         return None
    51         return None
       
    52     if isinstance(value, date):
       
    53         return value
    51     if not value.tzinfo:
    54     if not value.tzinfo:
    52         value = GMT.localize(value)
    55         value = GMT.localize(value)
    53     return value.astimezone(tzinfo())
    56     return value.astimezone(tzinfo())
    54 
    57 
    55 
    58 
    56 def gmtime(value):
    59 def gmtime(value):
    57     if not value:
    60     if not value:
    58         return None
    61         return None
       
    62     if isinstance(value, date):
       
    63         return value
    59     if not value.tzinfo:
    64     if not value.tzinfo:
    60         value = GMT.localize(value)
    65         value = GMT.localize(value)
    61     return value.astimezone(GMT)
    66     return value.astimezone(GMT)