文字列を時間に変換して差分取得 - lucen2k/python GitHub Wiki

Sample Source

# Timeout確認
from datetime import datetime as dt

login_time = '2020-09-24 11:00:00'
login_time = dt.strptime(login_time, '%Y-%m-%d %H:%M:%S')
# print(login_time.day) #文字列からdatetimeのObjectに変換確認

now_time = dt.now()
# print(now_time) # 現在の日時取得確認
# print(now_time.day) # それがdatetimeのObjectか確認

# print(now_time - login_time) # その差分確認

TIMEOUT_LIMIT = 60 # 1時間

# 差分
diff = now_time - login_time

print(type(diff))
print(diff)
print(diff.seconds) # 秒
print(diff.seconds/60) # 分に変換

if diff.seconds/60 > TIMEOUT_LIMIT:
    print('time over..')

結果

<class 'datetime.timedelta'>
1:26:29.942395
5189
86.48333333333333
time over..

日付や時間の差分取得

Sample Source

def get_diff_time(start_time, type='S'):
    start_time = datetime.strptime(str(start_time), '%Y-%m-%d %H:%M:%S')
    now_time = datetime.now()
    diff = (now_time - start_time)
    # print(diff.days)
    if type == 'M':
        return (diff.days * 24 * 60) + (diff.seconds / 60)
    elif type == 'H':
        return (diff.days * 24) + (diff.seconds / (60 * 60))
    elif type == 'd':
        return diff.days + (diff.seconds / (60 * 60 * 24))
    return (diff.days * 24 * 60 * 60) + diff.seconds

print(get_diff_time('2020-09-01 15:29:58', 'd'))
print(get_diff_time('2020-09-01 15:29:58', 'H'))
print(get_diff_time('2020-09-01 15:29:58', 'M'))
print(get_diff_time('2020-09-01 15:29:58', 'S'))

結果

<class 'datetime.timedelta'>
23.878506944444446
573.0841666666666
34385.05
2063103