1

RFC 3339時間を構築するためのルーチンはどこにありますか?

4

3 に答える 3

1

これは、RFCの10ページの例に基づいています。唯一の違いは、Googleドライブのタイムスタンプに準拠した6桁のマイクロ秒値を表示していることです。

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
于 2013-02-23T21:52:25.697 に答える
0

python-rfc3339は私にとって素晴らしい働きをしました。

于 2013-07-17T12:49:03.330 に答える
0

rfc3339は非常に柔軟性があります-http://www.ietf.org/rfc/rfc3339.txt-それはフォーマットの山全体を効果的に定義します。標準のPython時間フォーマットを使用するだけで、それらのほとんどすべてを生成できます-http://docs.python.org/3.3/library/datetime.html#strftime-strptime-behavior

ただし、奇妙な点が1つあります。それ:は、数値のタイムゾーンオフセット()で時間と分の間の時間を許可することです(オプションです%z)。pythonはそれを表示しないので、それを含める場合はpython-rfc3339などが必要です。

rfc3339を解析する場合、simple-dateはすべての形式を処理します。ただし、Python印刷ルーチンを使用しているため、:上記のケースを処理できません。

于 2013-07-17T12:55:43.560 に答える