当前位置: 首页>>代码示例>>Python>>正文


Python DateTime.toZone方法代码示例

本文整理汇总了Python中DateTime.DateTime.DateTime.toZone方法的典型用法代码示例。如果您正苦于以下问题:Python DateTime.toZone方法的具体用法?Python DateTime.toZone怎么用?Python DateTime.toZone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DateTime.DateTime.DateTime的用法示例。


在下文中一共展示了DateTime.toZone方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_timezone_metadata

# 需要导入模块: from DateTime.DateTime import DateTime [as 别名]
# 或者: from DateTime.DateTime.DateTime import toZone [as 别名]
 def test_timezone_metadata(self):
     # http://www.zope.org/Collectors/CMF/325
     # If an item's timestamp(s) are stored in another timezone,
     # e.g. 4 hours further away from UTC, the DC date methods
     # should still return it in the local timezone so that all
     # user-visible dates can be compared to each other by eye.
     site = DummySite('site').__of__(self.root)
     item = self._makeDummyContent('item').__of__(site)
     dates_and_methods = (
         ('modification_date', 'ModificationDate'),
         ('effective_date', 'EffectiveDate'),
         ('effective_date', 'Date'),
         ('expiration_date', 'ExpirationDate'),
         ('creation_date', 'CreationDate'))
     offset = 4  # arbitrary, any value should work.
     for datename, dc_methodname in dates_and_methods:
         orig = getattr(item, datename)
         # Some default to None, fix that.
         if orig is None:
             orig = DateTime()
             setattr(item, datename, orig)
         orig_DC = getattr(item, dc_methodname)()
         # Change the timezone of the date.
         local_offset = orig.tzoffset() % (3600*24)
         other_offset = (local_offset + offset) % 24
         otherzone = 'GMT+%d' % other_offset
         setattr(item, datename, orig.toZone(otherzone))
         # Finally, verify that display has not changed.
         new_DC = getattr(item, dc_methodname)()
         self.assertEqual(orig_DC, new_DC)
开发者ID:goschtl,项目名称:zope,代码行数:32,代码来源:test_DublinCore.py

示例2: result

# 需要导入模块: from DateTime.DateTime import DateTime [as 别名]
# 或者: from DateTime.DateTime.DateTime import toZone [as 别名]
    def result(self, date=None,
               use_ampm=False,
               starting_year=None,
               ending_year=None,
               future_years=None,
               minute_step=5):
        """Returns a dict with date information.
        """
        ptool = getToolByName(self.context, 'portal_properties')

        site_props = ptool.site_properties

        # Get the date format from the locale
        context = aq_inner(self.context)
        portal_state = getMultiAdapter((context, self.request), name=u'plone_portal_state')

        dates = portal_state.locale().dates

        timepattern = dates.getFormatter('time').getPattern()
        if 'a' in timepattern:
             use_ampm = True
        month_names = dates.getFormatter('date').calendar.months

        # 'id' is what shows up.  December for month 12. 
        # 'value' is the value for the form.
        # 'selected' is whether or not it is selected.

        default=0
        years=[]
        days=[]
        months=[]
        hours=[]
        minutes=[]
        ampm=[]
        now=DateTime()

        if isinstance(date, basestring):
            date=date.strip()
            if not date:
                date=None
            else:
                # Please see datecomponents.txt for an explanation of 
                # the next few lines. Also see #11423
                dateParts = date.split(" ")
                dateParts[0] = dateParts[0].replace("-", "/")
                date=' '.join(dateParts)

        if date is None:
            date=now
            default=1
        elif not isinstance(date, DateTime):
            try:
                date=DateTime(date)
            except (TypeError, DateTimeError):
                date=now
                default=1

        # Anything above PLONE_CEILING should be PLONE_CEILING
        if date.greaterThan(PLONE_CEILING):
            date = PLONE_CEILING

        # Represent the date in the local timezone
        local_zone = date.localZone(localtime(date.timeTime()))
        date = date.toZone(local_zone)

        # Get portal year range
        if starting_year is None:
            min_year = site_props.getProperty('calendar_starting_year', 1999)
        else:
            min_year = int(starting_year)
        if ending_year is None:
            if future_years is None:
                max_year = site_props.getProperty('calendar_future_years_available', 5) + now.year()
            else:
                max_year = int(future_years) + now.year()
        else:
            max_year = int(ending_year)

        # keeps the existing date if it's out of range
        if not default:
            if min_year > date.year():
                min_year = date.year()
            if max_year < date.year():
                max_year = date.year()

        year=int(date.strftime('%Y'))

        if default:
            years.append({'id': '--', 'value': '0000', 'selected': 1})
        else:
            years.append({'id': '--', 'value': '0000', 'selected': None})

        for x in range(min_year, max_year+1):
            d={'id': x, 'value': x, 'selected': None}
            if x==year and not default:
                d['selected']=1
            years.append(d)

        month=int(date.strftime('%m'))

#.........这里部分代码省略.........
开发者ID:rochecompaan,项目名称:plone.app.form,代码行数:103,代码来源:datecomponents.py

示例3: result

# 需要导入模块: from DateTime.DateTime import DateTime [as 别名]
# 或者: from DateTime.DateTime.DateTime import toZone [as 别名]
    def result(self, date=None,
               use_ampm=False,
               starting_year=None,
               ending_year=None,
               future_years=None,
               minute_step=5):
        """Returns a dict with date information.
        """
        ptool = getToolByName(self.context, 'portal_properties')
        site_props = getattr(ptool, 'site_properties', None)

        # Get the date format from the locale
        dates = self.request.locale.dates

        timepattern = dates.getFormatter('time').getPattern()
        if 'a' in timepattern:
            use_ampm = True
        month_names = dates.getFormatter('date').calendar.months

        # 'id' is what shows up.  December for month 12.
        # 'value' is the value for the form.
        # 'selected' is whether or not it is selected.

        default = 0
        years = []
        days = []
        months = []
        hours = []
        minutes = []
        ampm = []
        now = DateTime()

        if isinstance(date, basestring):
            date = date.strip()
            if not date:
                date = None
            else:
                # Please see datecomponents.txt for an explanation of
                # the next few lines. Also see #11423
                dateParts = date.split(" ")
                dateParts[0] = dateParts[0].replace("-", "/")
                date = ' '.join(dateParts)

        if date is None:
            date = now
            default = 1
        elif not isinstance(date, DateTime):
            try:
                date = DateTime(date)
            except (TypeError, DateTimeError):
                date = now
                default = 1

        # Anything above PLONE_CEILING should be PLONE_CEILING
        if date.greaterThan(PLONE_CEILING):
            date = PLONE_CEILING

        # Represent the date in the local timezone
        try:
            local_zone = date.localZone(localtime(date.timeTime()))
        except ValueError:
            # Dates before 1970 use a negative timeTime() value, which on
            # on some platforms are not handled well and lead to a ValueError.
            # In those cases, calculate the local timezone (which is DST based)
            # from the same date in the *current year* instead. This is better
            # than failing altogether!
            timeZoneDate = DateTime(localtime().tm_year, *date.parts()[1:])
            local_zone = date.localZone(localtime(timeZoneDate.timeTime()))
        date = date.toZone(local_zone)

        # Get portal year range
        min_year = starting_year
        if starting_year is None and site_props is not None:
            min_year = site_props.getProperty('calendar_starting_year', 1999)
        else:
            min_year = int(starting_year or 1999)
        if ending_year is None:
            if future_years is None and site_props is not None:
                future_years = site_props.getProperty('calendar_future_years_available', 5)
            else:
                future_years = int(future_years or 5)
            max_year = int(future_years) + now.year()
        else:
            max_year = int(ending_year)

        # keeps the existing date if it's out of range
        if not default:
            if min_year > date.year():
                min_year = date.year()
            if max_year < date.year():
                max_year = date.year()

        year = date.year()

        if default:
            years.append({'id': '--', 'value': '0000', 'selected': 1})
        else:
            years.append({'id': '--', 'value': '0000', 'selected': None})

        for x in range(min_year, max_year+1):
#.........这里部分代码省略.........
开发者ID:Goldmund-Wyldebeast-Wunderliebe,项目名称:Products.Archetypes,代码行数:103,代码来源:datecomponents.py


注:本文中的DateTime.DateTime.DateTime.toZone方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。