Pythonで時刻の差分を計算する方法

f:id:komeiy:20150128230741p:plain

ログのようなタイムスタンプ付きのテキストを扱う時など時刻に関する操作をメモしておきます。

Pythonで時刻を扱う

日付型および時間型が扱えるdatetimeを使用します。

以下のように日付だけ扱うクラス、時間だけ扱うクラスなどがあります。 timedeltaを使うと日付などの加算や減算が可能です。

class datetime.date
class datetime.time
class datetime.datetime
class datetime.timedelta
class datetime.tzinfo

datetime.datetimeで扱えるのは「year, month, day, hour, minute, second, microsecond」です。

参考:http://docs.python.jp/2/library/datetime.html

モジュールのインポート

import time
from datetime import datetime

時間を文字列で変数に代入

t1 = '2015-01-27 14:45:12,398'
t2 = '2015-02-27 14:45:12,398'

現在時刻を扱う場合

import datetimeでインポートした場合はdatetime.datetime.now()を使ってください。

now = datetime.now()

stringを時刻フォーマットに変換(分割)

time_t1 = time.strptime(t1,'%Y-%m-%d %H:%M:%S,%f')
time_t2 = time.strptime(t2,'%Y-%m-%d %H:%M:%S,%f')

文字列から時刻へ変換できたか確認

>>> print time_t1
time.struct_time(tm_year=2015, tm_mon=1, tm_mday=27, tm_hour=14, tm_min=45, tm_sec=12, tm_wday=1, tm_yday=27, tm_isdst=-1)

>>> print time_t2
time.struct_time(tm_year=2015, tm_mon=2, tm_mday=27, tm_hour=14, tm_min=45, tm_sec=12, tm_wday=4, tm_yday=58, tm_isdst=-1)

Pythonで時刻の差分を計算する

エポック秒UNIX時間)へ変換する

epo_time_t1=time.mktime(tap_t1)
epo_time_t2=time.mktime(tap_t2)

エポック秒へ変換できたか確認

>>> print epo_time_t1
1422337512.0

>>> print epo_time_t2
1425015912.0

差分を計算できるか確認

>>> print epo_time_t2 - epo_time_t1
2678400.0

>>> print epo_time_t1 - epo_time_t2
-2678400.0

シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。

このエントリーをはてなブックマークに追加

Pythonスタートブック

Pythonスタートブック

初めてのPython 第3版

初めてのPython 第3版