私が継承している一部のコードは、Python の psycopg2 モジュールを使用して、Postgres データベース クエリから mxDateTime オブジェクトを返します。この動作は歴史的な理由によるものだと推測していますが、別の説明があるのではないかと考えています。継承した大規模なライブラリを介して mxDateTime 依存関係が既にある場合、これらの日付を操作する前に組み込みの datetime データ型に変換する利点はありますか?
1 に答える
2
歴史的ではないそれを変更しない大きな理由があります。組み込みのPythonタイムスタンプは、多くの場合32ビットのみです。
Postgresqlsタイムスタンプ:
最小値4713BC
最大値:5874897 AD
http://www.postgresql.org/docs/current/static/datatype-datetime.html#DATATYPE-DATETIME-TABLE
Pythonの:
classmethod date.fromtimestamp(timestamp)¶
...これは1970年から2038年までの年に制限されるのが一般的です。タイムスタンプの概念にうるう秒が含まれる非POSIXシステムでは、うるう秒はfromtimestamp()によって無視されることに注意してください。
http://docs.python.org/library/datetime.html#datetime.date.fromtimestamp
Python2.5を搭載したWindows7の場合:
>>>> date.fromtimestamp(0)
datetime.date(1969, 12, 31)
>>> date.fromtimestamp(-1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: timestamp out of range for platform localtime() function
于 2010-12-22T21:05:44.220 に答える