2015-12-20 45 views
1

從rethinkdb集羣獲取的行包括帶時區的日期對象。 這裏有一個示例:python datetime.strftime()無法使用RqlTzinfo對日期時間對象進行字符串化處理

ipython> dt 
datetime.datetime(2015, 12, 18, 0, 22, 4, 644000, tzinfo=<rethinkdb.ast.RqlTzinfo object at 0x7f072c5d6250>) 

我想他們字符串化成一定的格式:

dt.strftime("%d-%m-%Y %H:%M:%S (%Z)") 

,並導致

*** TypeError: tzinfo.tzname() must return None or a string, not 'unicode' 

我如何克服這個問題?

回答

1

如果你看看RqlTzinfo.tzname()的源代碼,你可以看到它只是返回它的offsetstr屬性。由於該屬性絕不會被修改或在類的任意轉換和類的行爲不依賴於它是任何一個strunicode,以下就足夠了:

dt.tzinfo.offsetstr = str(dt.tzinfo.offsetstr) 
+0

我爲什麼沒有采取源一看代碼放在第一位..?該屬性的名稱是offsetstr,或至少在我使用的版本(v1.15 - 舊),但無論如何,謝謝,我現在感到非常愚蠢:P – Kludge

相關問題