Python和RFC 3339时间戳



在哪里可以找到构建RFC 3339时间的例程?

这是基于RFC第10页上的示例。唯一的区别是,我显示的微秒值为六位数,与Google Drive的时间戳一致。

from math import floor
def build_rfc3339_phrase(datetime_obj):
    datetime_phrase = datetime_obj.strftime('%Y-%m-%dT%H:%M:%S')
    us = datetime_obj.strftime('%f')
    seconds = datetime_obj.utcoffset().total_seconds()
    if seconds is None:
        datetime_phrase += 'Z'
    else:
        # Append: decimal, 6-digit uS, -/+, hours, minutes
        datetime_phrase += ('.%.6s%s%02d:%02d' % (
                            us,
                            ('-' if seconds < 0 else '+'),
                            abs(int(floor(seconds / 3600))),
                            abs(seconds % 3600)
                            ))
    return datetime_phrase

python-rfc3339对我来说效果很好。

rfc3339非常灵活-http://www.ietf.org/rfc/rfc3339.txt-它有效地定义了一大堆格式。只需使用标准的python时间格式,就可以生成几乎所有的时间格式http://docs.python.org/3.3/library/datetime.html#strftime-结构时间行为

然而,有一个奇怪的地方,那就是它们允许(可选)在数字时区偏移(%z)中的小时和分钟之间的:。python不会显示这一点,所以如果你想包含它,你需要python-rfc3339或类似的东西。

对于解析rfc3339,简单日期将处理所有格式。但由于它使用python打印例程,因此无法处理上面的:情况。

相关内容

  • 没有找到相关文章

最新更新