実践・上級問題チェック
問題 21 /40
タイムゾーンに関する説明で、正しいものはどれか。
選択 1
タイムゾーンを含むdatetimeオブジェクトをNaiveオブジェクト、タイムゾーンを含まないdatetimeオブジェクトをAwareオブジェクトと呼ぶ。
選択 2
差分や比較の計算は、Awareオブジェクト同士、またはNaiveオブジェクト同士で行う必要がある。
選択 3
タイムゾーンを変更する場合は、astime()メソッドを使う。
選択 4
世界各地のタイムゾーン情報を扱う場合は、ZoneInfoモジュールのzoneinfoオブジェクトを利用する。
解説
選択肢2が正解です。
【選択肢1】
タイムゾーンを含むdatetimeオブジェクトをAwareオブジェクト、タイムゾーンを含まないdatetimeオブジェクトをNaiveオブジェクトと呼びます。
英語のawareは「気づいている、知っている、認識している」という意味で、ここでは「タイムゾーンを認識している」と覚えます。
英語のnaiveは「素朴」や「単純」という意味です。スペルはNative(ネイティブ)ではなくNaive(ナイーブ)です。
【選択肢2】
正しい説明です。AwareオブジェクトとNaiveオブジェクトで差分を求めるとTypeErrorが発生します。
【選択肢3】
タイムゾーンを変更する場合は、astime()メソッドではなくastimezone()メソッドを使います。
【選択肢4】
世界各地のタイムゾーン情報を扱う場合は、zoneinfoモジュールのZoneInfoオブジェクトを利用します。
モジュールやオブジェクトの大文字小文字は厳密に区別されます。また、PEP8の命名規約でもモジュールの名前は小文字となっています。
(公式書籍 p.168-169、174-175)