Pythonで日時処理を行いたい場合、標準ライブラリのdatetimeモジュールが使用できます。
datetimeモジュールは、インポートの指定が必要になりますので、プログラムの先頭に以下が必要となります。
import datetime
参考
現在日時
現在の日時は、datetimeオブジェクトのnowメソッドか、todayメソッドで取得できます。
now = datetime.datetime.now() print(now) #=> '2018-11-04 17:59:50.263715'
today = datetime.datetime.today() print(now) #=> '2018-11-04 17:59:50.263715'
Unixタイムスタンプを求める
timestampメソッドでUnixタイムを求められますが、得られるのはfloat型になります。
now = datetime.datetime.now() utime = now.timestamp() print(utime) #=> 1541322721.386434
int型にする場合、組み込み関数intを使います。
now = datetime.datetime.now() utime = int(now.timestamp()) print(utime) #=> 1541322721
指定した日時を求める
Unixタイムスタンプを求める
日時の文字列からUnixタイムスタンプを求める場合、strptimeを使う方法があります。 ただし、strptimeメソッドは、datetime.datetimeオブジェクトを返すので、さらにtimestampメソッドを使ってUnixタイムスタンプを求めます。
dt = datetime.datetime.strptime('2018-09-18', '%Y-%m-%d') utime = dt.timestamp() #=> 1537974000.0
文字列を求める
日時の文字列(ユーザーが選択した日付など)を別フォーマットに変換する場合、まずdatetime.strptimeで指定文字列の日時のdatetimeオブジェクトを作成します。 datetimeオブジェクトが得られたら、strftimeメソッドで求める文字列にします。
dt = datetime.datetime.strptime('2018/9/5', '%Y-%m-%d') str = dt.strftime('%Y-%m-%d') #=> '2018-09-05'
dt = datetime.datetime.strptime('2018/09/18 23:45:30', '%Y/%m/%d %H:%M:%S') str = dt.strftime('%Y-%m-%d %H:%M:%S') #=> '2018-09-18 23:45:30'
文字列から日時情報を取り出す
日時を表す文字列から日時情報を取り出す場合、まず文字列からdatetimeオブジェクトを求めて、それから目的の日時情報を取り出す方法があります。
datetime.strptime
日時を表す文字列からdatetimeオブジェクトを求める場合、datetime.strptimeを使う方法があります。 strptimeで指定できる書式の詳細は以下にあります。
年月日の例です。月や日が1桁の場合、2桁目に0があっても無くても正常に処理してくれます。
str = '2018/09/4' dt = datetime.datetime.strptime(str, '%Y/%m/%d')
例 年月日と時分秒の場合
str = '2018/9/07 23:45:5' dt = datetime.datetime.strptime(str, '%Y/%m/%d %H:%M:%S')