Python での ISO 時間 (ISO 8601) 質問する

Python での ISO 時間 (ISO 8601) 質問する

ファイルがあります。Pythonで、その作成時刻を取得して、ISO 時間 (ISO 8601) 文字列 1860年代に作られたという事実を保ちながら東部標準時(ET) .

ファイルの ctime を取得して、東部標準時ゾーンを示す (必要に応じて夏時間も考慮する) ISO 時間文字列に変換するにはどうすればよいですか?

ベストアンサー1

ISO 8601 にローカル:

import datetime
datetime.datetime.now().isoformat()
>>> 2020-03-20T14:28:23.382748

UTC から ISO 8601:

import datetime
datetime.datetime.utcnow().isoformat()
>>> 2020-03-20T01:30:08.180856

マイクロ秒なしの ISO 8601 ローカル:

import datetime
datetime.datetime.now().replace(microsecond=0).isoformat()
>>> 2020-03-20T14:30:43

タイムゾーン情報を含む UTC から ISO 8601 への変換 (Python 3):

import datetime
datetime.datetime.now(tz=datetime.timezone.utc).isoformat()
>>> 2020-03-20T01:31:12.467113+00:00

マイクロ秒なしのローカルタイムゾーン情報を含む UTC から ISO 8601 への変換 (Python 3):

import datetime
datetime.datetime.now().astimezone().replace(microsecond=0).isoformat()
>>> 2020-03-20T14:31:43+13:00

TimeZone 情報を含む ISO 8601 のローカル (Python 3):

import datetime
datetime.datetime.now().astimezone().isoformat()
>>> 2020-03-20T14:32:16.458361+13:00

utc 時間で使用するとバグが発生することに注意してくださいastimezone()。これにより、誤った結果が生成されます。

datetime.datetime.utcnow().astimezone().isoformat() #Incorrect result

Python 2の場合は、以下を参照してください。ピッツ

おすすめ記事