[Django]テーブルに日付登録するとタイムゾーンが勝手に設定される

IT

Fx自動売買システムを作っているとき、Modelsに格納されたデータのテストを行いました。
この時、DateTime型を格納するとき勝手にタイムゾーンがついてしまい、テストエラーになっていまいます。

 #テストデータ登録
db.InputTable(
     no = 1
    ,interval = 5
    ,date = datetime(2020, 3, 26, 10, 11, 25)
    ,open = 100.03
    ,high = 101.03
    ,low = 99.03
    ,close = 99.98
).save()

#期待値
expect1 = pd.DataFrame([
     1
    ,5
    ,datetime(2020, 3, 26, 10, 11, 25)
    ,100.03
    ,101.03
    ,99.03
    ,99.98
])

#テスト実行
result1 = testee.get_table()

#結果
assert_frame_equal(result1,expect1)

エラーコマンド

 Attribute "dtype" are different
[left]:  datetime64[ns, UTC]
[right]: datetime64[ns]

DB登録時に勝手にUTCが付きます
これsettings.pyの初期値が

 LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

このようになっているからです。
特にタイムゾーンが要らない場合は

 USE_TZ = False

に修正しましょう。

コメント

タイトルとURLをコピーしました