Python では、`datetime` オブジェクトを秒数に変換するにはどうすればよいでしょうか? 質問する

Python では、`datetime` オブジェクトを秒数に変換するにはどうすればよいでしょうか? 質問する

たくさんの datetime オブジェクトがあり、それぞれの過去の固定時刻からの秒数 (たとえば、1970 年 1 月 1 日以降) を計算したいと考えています。

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

これは、異なる曜日を持つ日付のみを区別しているようです。

t.toordinal()

オブジェクトを秒数に変換するにはどうすればよいでしょうかdatetime?

ベストアンサー1

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に が添付されている場合は、開始日にも が添付されている必要があります。そうでないと減算は失敗します。上記の例では、 if using Python 2 またはif using Python 3datetimeを追加します。tzinfo=pytz.utctzinfo=timezone.utc

おすすめ記事