在哪里可以找到构建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打印例程,因此无法处理上面的:
情况。