Python は日時をエポックに変換する

Vaibhhav Khetarpal 2023年1月30日
  1. Python で明示的メソッドを使用して日時をエポックに変換する
  2. Python で timestamp() 関数を使用して日時をエポックに変換する
  3. Python で strftime(format) 関数を使用して日時をエポックに変換する
  4. Python で timegm 関数を使用して DateTime をエポックに変換する
Python は日時をエポックに変換する

datetime ライブラリは Python プログラムにインポートできます。Python コードで日付と時刻を操作するために使用されるクラスを提供します。

エポックは経過時間を測定する開始点であり、その値は通常、使用されているプラ​​ットフォームによって異なります。

このチュートリアルでは、Python で日時をエポックに変換するさまざまな方法について説明します。

Python で明示的メソッドを使用して日時をエポックに変換する

このメソッドでは、現在の日付を取得し、開始日から手動で減算してから、total_seconds() 関数を使用して表示することにより、秒単位で変換します。

ここでの最初の日付は 1970/1/1 です。

次のコードは、明示的なメソッドを使用して、Python で日時をエポックに変換します。

import datetime

ts = (
    datetime.datetime(2019, 12, 1, 0, 0) - datetime.datetime(1970, 1, 1)
).total_seconds()
print(ts)

出力:

1575158400.0

Python で timestamp() 関数を使用して日時をエポックに変換する

タイムスタンプは、特定のイベントが発生したときの値を示す一連の文字です。

Python には、エポック以降の日時のタイムスタンプを取得するために使用できる関数 timestamp() が用意されています。

次のコードは、timestamp() 関数を使用して、Python で日時をエポックに変換します。

import datetime

ts = datetime.datetime(2019, 12, 1, 0, 0).timestamp()
print(ts)

出力:

1575158400.0

これはかなり簡単な方法であり、正確な出力を提供します。

timestamp() 関数は Python 3.3 以降でのみ機能し、古いバージョンの Python では使用できないことに注意してください。

Python で strftime(format) 関数を使用して日時をエポックに変換する

strftime(format) メソッドは、ユーザーが指定した形式に基づいてオブジェクトを文字列に変換するために使用されます。

このプロセスの逆には、strptime() メソッドが使用されます。

次のコードは、strftime(format) メソッドを使用して、Python で日時をエポックに変換します。

import datetime

ts = datetime.datetime(2019, 12, 1, 0, 0).strftime("%s")
print(ts)

出力:

1575158400

strftime(format) は常に正しい解決策を提供するとは限りません。このメソッドは、Python が実際にはサポートしていない strftime の引数として%s ディレクティブを使用します。Python は %s をシステムの strftime メソッドに転送するため、これは機能する可能性があります。

この方法は、日時をエポックに変換するための最も正確な方法ではありません。より優れたより正確な方法があるという理由だけで、この方法を使用することはお勧めしません。

Python で timegm 関数を使用して DateTime をエポックに変換する

timegm() 関数は特定の時間値を取り、対応する Unix タイムスタンプ値を返します。エポックは 1970 年と見なされ、POSIX エンコーディングが想定されます。time.gmtime() 関数と timegm() 関数は互いに逆です。

これらの関数を使用するには、calendar ライブラリと time ライブラリの両方を Python プログラムにインポートする必要があります。

calendar モジュールは、カレンダーとそれに関連するいくつかの追加の便利な機能を出力する機能を提供します。

次のコードは、timegm() 関数を使用して日時をエポックに変換します。

import datetime
import calendar

d = datetime.datetime(2019, 12, 1, 0, 0)
print(calendar.timegm(d.timetuple()))

出力:

1575158400
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

関連記事 - Python DateTime