StackExchange の最初のタイマー。
ArcGIS Server と Python を使用しています。REST エンドポイントを使用してマップ サービスへのクエリを実行しようとしているときに、JSON 応答で負のエポックの esriFieldTypeDate であるフィールドの値を取得しています。JSON 応答は次のようになります。
{
"feature" :
{
"attributes" : {
"OBJECTID" : 11,
"BASIN" : "North Atlantic",
"TRACK_DATE" : -3739996800000,
}
,
"geometry" :
{
"paths" :
[
[
[-99.9999999999999, 30.0000000000001],
[-100.1, 30.5000000000001]
]
]
}
}
}
私が参照しているフィールドは、上記の JSON の「TRACK_DATE」です。ArcGIS Server によって返される値は、常にエポックからのミリ秒単位です。ArcGIS Server は HTML 応答も提供し、同じクエリの TRACK_DATE フィールドは「TRACK_DATE: 1851/06/27 00:00:00 UTC」と表示されます。
そのため、日付は 1900 年より前であり、Python の組み込みの datetime モジュールは 1900 年より前の日付を処理できないことを理解しています。私は 32 ビット Python v2.6 を使用しています。を使用して日時に変換しようとしています
datetime.datetime.utcfromtimestamp(float(-3739996800000)/1000)
ただし、これは失敗します
ValueError: timestamp out of range for platform localtime()/gmtime() function
Python 2.6 で負の 1900 年より前のエポックを処理するにはどうすればよいですか? 同様の投稿を見てきましたが、ネガティブ エポックの操作について説明している投稿は見つかりませんでした。