python Djangoの日時計算にdeloreanを使用しています。
http://delorean.readthedocs.org/en/latest/quickstart.html
これは私が使用しているものです:
now = Delorean(timezone=settings.TIME_ZONE).datetime
todayDate = now.date()
しかし、私はこの警告を受けます:
RuntimeWarning: DateTimeField start_time received a naive datetime (2014-12-09 00:00:00) while time zone support is active.
それを意識させる方法を知りたい。
私もこれを試しました:
todayDate = timezone.make_aware(now.date(), timezone=settings.TIME_ZONE)
それから私はこれを手に入れます:
AttributeError: 'datetime.date' object has no attribute 'tzinfo'
Pythonには「タイムゾーン対応の日付」の概念がないため、date
オブジェクトとdatetime
オブジェクトのどちらを使用しようとしているのかは明確ではありません。
現在のタイムゾーンの現在の時刻に対応するdate
オブジェクトを取得するには、次を使用します。
# All versions of Django
from Django.utils.timezone import localtime, now
localtime(now()).date()
# Django 1.11 and higher
from Django.utils.timezone import localdate
localdate()
つまり、UTCで現在のタイムゾーン対応datetime
を取得しています。ローカルタイムゾーンに変換します(つまり、TIME_ZONE
);それから日付を取得します。
現在のタイムゾーンの現在の日付の00:00:00に対応するdatetime
オブジェクトを取得する場合は、次のようにします。
# All versions of Django
localtime(now()).replace(hour=0, minute=0, second=0, microsecond=0)
# Django 1.11 and higher
localtime().replace(hour=0, minute=0, second=0, microsecond=0)
これと あなたの他の質問 に基づいて、あなたはDeloreanパッケージに混乱していると思います。 DjangoとPythonの日時機能を使用することをお勧めします。