navie時間とaware時間


navie時間とaware時間:
navie時間とは?aware時間とは?
  • navie時間:自分の時間がどのタイムゾーンを表しているのか分からない.つまり自分が何斤何両なのか分からない.幼稚です.
  • aware時間:自分の時間がどのタイムゾーンを表しているか知っています.つまり、目が覚めている.

  • pytzライブラリ:
    タイムゾーンの処理に特化したライブラリ.このライブラリは常にタイムゾーンのデータを更新しているので、心配する必要はありません.そしてこのライブラリはDjangoをインストールするときにデフォルトでインストールされます.インストールされていない場合は、pip install pytzでインストールできます.
    astimezoneメソッド:
    1つのタイムゾーンの時間を別のタイムゾーンの時間に変換します.この方法はawareタイプの時間にのみ呼び出される.navieタイプの時間に呼び出されません.サンプルコードは次のとおりです.
    import pytz
    from datetime import datetime
    now = datetime.now() #     navie     
    utc_timezone = pytz.timezone("UTC") #   UTC     
    utc_now = now.astimezone(utc_timezone) #          UTC     
    >> ValueError: astimezone() cannot be applied to a naive datetime #        ,      navie         astimezone  
    
    now = now.replace(tzinfo=pytz.timezone('Asia/Shanghai'))
    utc_now = now.astimezone(utc_timezone)
    #            。

    replaceメソッド:
    1時間のプロパティの一部を変更できます.
    django.utils.timezone.nowメソッド:
    現在の時刻は、settings.pyに設定されているかどうかに応じて取得されます.設定されている場合、USE_TZ=Trueタイプのaware時間が取得される.設定されていない場合、UTCタイプの時間が取得されます.
    django.utils.timezone.localtimeメソッド:navieのうちのsetting.pyに従って、1つのTIME_ZONEタイプの時間がaware指定タイムゾーンの時間に変換されます.
    DateField:
    日付タイプ.TIME_ZONEではPythonタイプで、年月日を記録できます.データベースへのマッピングもdatetime.dateタイプです.このdateを使用して、次のパラメータを渡すことができます.
  • Field:このデータが保存されるたびに、現在の時間が使用されます.例えば、変更日を記録するフィールドとして、この属性をauto_nowに設定することができる.
  • True:データが最初に追加されるたびに、現在の時間が使用されます.例えば、最初の入庫を記録するフィールドとして、この属性をauto_now_addに設定することができる.

  • DateTimeField:
    日付タイプは、Trueに似ています.日付だけでなく、時間も保存できます.データベースにマッピングされるタイプはDateFieldです.このdatetimeは、Fieldauto_nowの2つの属性を使用することもできる.
    TimeField:
    時間タイプ.データベースではauto_now_addタイプです.timeではPython型である.
    navieとawareの紹介とdjangoでの使い方:
    https://docs.djangoproject.com/en/2.0/topics/i18n/timezones/
    出典:教室を知った