1. ホーム
  2. パイソン

[解決済み】Pythonで、`datetime`オブジェクトを秒に変換する方法は?

2022-04-04 20:27:37

質問

簡単な質問で申し訳ないのですが・・・。Python初心者です... いろいろ検索してみたのですが、何もうまくいかないようです。

私はたくさんのdatetimeオブジェクトを持っていて、それぞれについて過去の一定時間からの秒数を計算したいのです(例えば1970年1月1日以降)。

import datetime
t = datetime.datetime(2009, 10, 21, 0, 0)

これは、日数が異なる日付だけを区別しているようです。

t.toordinal()

よろしくお願いします。

解決方法は?

1970年1月1日という特別な日については、複数の選択肢があります。

その他の開始日については、2つの日付の差を秒単位で取得する必要があります。2つの日付を引き算すると timedelta オブジェクトがあり、Python 2.7ではこのオブジェクトに total_seconds() 関数を使用します。

>>> (t-datetime.datetime(1970,1,1)).total_seconds()
1256083200.0

開始日は通常 UTC で指定されるので、適切な結果を得るためには datetime この式に入力する文字もUTCでなければなりません。もし datetime がUTCでない場合は、使う前に変換するか、あるいは tzinfo クラスは適切なオフセットを持ちます。

コメントにもあるように、もしあなたが tzinfo に添付されている datetime の場合、開始日にも1つ必要です。そうしないと、減算は失敗します。 tzinfo=pytz.utc Python 2 を使用している場合、または tzinfo=timezone.utc は、Python 3 を使用している場合です。