2013-02-23 160 views

回答

1

這是基於RFC第10頁上的例子。唯一的區別是我顯示的是六位數的微秒值,與Google雲端硬盤的時間戳一致。

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 
0

rfc3339非常靈活 - http://www.ietf.org/rfc/rfc3339.txt - 它有效地定義了一大堆格式。您可以生成幾乎所有的人只使用Python標準時間格式化 - http://docs.python.org/3.3/library/datetime.html#strftime-strptime-behavior

然而,有一個怪胎,那就是它們允許(這是可選)在數字時區偏移小時和分鐘之間的:%z) 。 python不會顯示,所以如果你想包括你需要python-rfc3339或類似的。

for 解析 rfc3339,簡單日期將處理所有格式。但由於它使用python打印例程,因此無法處理上述的:情況。