たくさんの 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.utc
tzinfo=timezone.utc