2

私が継承している一部のコードは、Python の psycopg2 モジュールを使用して、Postgres データベース クエリから mxDateTime オブジェクトを返します。この動作は歴史的な理由によるものだと推測していますが、別の説明があるのではないかと考えています。継承した大規模なライブラリを介して mxDateTime 依存関係が既にある場合、これらの日付を操作する前に組み込みの datetime データ型に変換する利点はありますか?

4

1 に答える 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 に答える