私は一緒に2回追加しようとしています。ISO 8601 タイム スタンプは「1984-06-02T19:05:00.000Z」で、秒に変換したいと考えています。Python モジュールを使ってみましiso8601
たが、パーサーに過ぎません。
助言がありますか?
エポックからの秒数を取得したい場合は、 を使用python-dateutil
してdatetime
オブジェクトに変換し、strftime
メソッドを使用して秒数に変換できます。そのようです:
>>> import dateutil.parser as dp
>>> t = '1984-06-02T19:05:00.000Z'
>>> parsed_t = dp.parse(t)
>>> t_in_seconds = parsed_t.timestamp()
>>> t_in_seconds
'455051100'
だから、あなたはそこにいた途中でした:)
日付はRFC 3339 形式の UTC 時間です。stdlib のみを使用して解析できます。
from datetime import datetime
utc_dt = datetime.strptime('1984-06-02T19:05:00.000Z', '%Y-%m-%dT%H:%M:%S.%fZ')
# Convert UTC datetime to seconds since the Epoch
timestamp = (utc_dt - datetime(1970, 1, 1)).total_seconds()
# -> 455051100.0
Python で datetime.date を UTC タイムスタンプに変換するも参照してください。
ISO 8601 形式に変換するにはどうすればよいですか?
POSIX タイムスタンプを元に変換するには、そこから UTC 日時オブジェクトを作成し、.strftime()
メソッドを使用してフォーマットします。
from datetime import datetime, timedelta
utc_dt = datetime(1970, 1, 1) + timedelta(seconds=timestamp)
print(utc_dt.strftime('%Y-%m-%dT%H:%M:%S.%fZ'))
# -> 1984-06-02T19:05:00.000000Z
注: 小数点以下 6 桁 (マイクロ秒) を出力します。3 桁を取得するには、マイクロ秒を小数点以下 2 桁にフォーマットする (実際には、マイクロ秒を 10 マイクロ秒に変換する) を参照してください。