src/ztfy/utils/timezone/__init__.py
branchZTK-1.1
changeset 218 e8bb333bf7c5
parent 214 91a1aa280326
equal deleted inserted replaced
217:635b1a1edf16 218:e8bb333bf7c5
    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 from datetime import datetime
    21 
    21 
    22 # import Zope3 interfaces
    22 # import Zope3 interfaces
    23 from zope.interface.common.idatetime import ITZInfo
    23 from zope.interface.common.idatetime import ITZInfo
    24 from zope.publisher.interfaces.browser import IBrowserRequest
    24 from zope.publisher.interfaces.browser import IBrowserRequest
    25 
    25 
    47 
    47 
    48 
    48 
    49 def tztime(value):
    49 def tztime(value):
    50     if not value:
    50     if not value:
    51         return None
    51         return None
    52     if isinstance(value, date):
    52     if not isinstance(value, datetime):
    53         return value
    53         return value
    54     if not value.tzinfo:
    54     if not value.tzinfo:
    55         value = GMT.localize(value)
    55         value = GMT.localize(value)
    56     return value.astimezone(tzinfo())
    56     return value.astimezone(tzinfo())
    57 
    57 
    58 
    58 
    59 def gmtime(value):
    59 def gmtime(value):
    60     if not value:
    60     if not value:
    61         return None
    61         return None
    62     if isinstance(value, date):
    62     if not isinstance(value, datetime):
    63         return value
    63         return value
    64     if not value.tzinfo:
    64     if not value.tzinfo:
    65         value = GMT.localize(value)
    65         value = GMT.localize(value)
    66     return value.astimezone(GMT)
    66     return value.astimezone(GMT)