# glance.common.timeutils

# Source code for glance.common.timeutils

    # Copyright 2011 OpenStack Foundation.
    # All Rights Reserved.
    #
    #    Licensed under the Apache License, Version 2.0 (the "License"); you may
    #    not use this file except in compliance with the License. You may obtain
    #    a copy of the License at
    #
    #         http://www.apache.org/licenses/LICENSE-2.0
    #
    #    Unless required by applicable law or agreed to in writing, software
    #    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
    #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
    #    License for the specific language governing permissions and limitations
    #    under the License.

    """
    Time related utilities and helper functions.
    """

    from oslo_utils import timeutils

    # ISO 8601 extended time format with microseconds
    _ISO8601_TIME_FORMAT_SUBSECOND = '%Y-%m-%dT%H:%M:%S.%f'
    _ISO8601_TIME_FORMAT = '%Y-%m-%dT%H:%M:%S'
    PERFECT_TIME_FORMAT = _ISO8601_TIME_FORMAT_SUBSECOND

    def isotime(at=None, subsecond=False):
        """Stringify time in ISO 8601 format."""
        if not at:
            at = timeutils.utcnow()
        st = at.strftime(_ISO8601_TIME_FORMAT
                         if not subsecond
                         else _ISO8601_TIME_FORMAT_SUBSECOND)
        tz = at.tzinfo.tzname(None) if at.tzinfo else 'UTC'
        # Need to handle either iso8601 or python UTC format
        st += ('Z' if tz in ['UTC', 'UTC+00:00'] else tz)
        return st

this page last updated: 2026-03-18 20:42:57

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug