Pythonで時刻の差分を計算する方法
ログのようなタイムスタンプ付きのテキストを扱う時など時刻に関する操作をメモしておきます。
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
モチベーション維持の観点で非常に励みになります。
- 作者: 辻真吾
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/24
- メディア: 大型本
- 購入: 19人 クリック: 199回
- この商品を含むブログ (48件) を見る
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 12人 クリック: 423回
- この商品を含むブログ (130件) を見る