実践・上級問題チェック

問題 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)