web-dev-qa-db-ja.com

str to time in python

time1 = "2010-04-20 10:07:30"
time2 = "2010-04-21 10:07:30"

上記を文字列からタイムスタンプに変換するにはどうすればよいですか?

上記のタイムスタンプを引く必要がありますtime2-time1

17
Rajeev

Python 2.5+

from datetime import datetime
format = '%Y-%m-%d %H:%M:%S'
print datetime.strptime(time2, format) - 
        datetime.strptime(time1, format)
# 1 day, 0:00:00

編集: for Python 2.4

import time
format = '%Y-%m-%d %H:%M:%S'
print time.mktime(time.strptime(time2, format)) - 
        time.mktime(time.strptime(time1, format))
# 86400.0
22
knitti
>>> t1 = datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")
>>> t2 = datetime.strptime(time2, "%Y-%m-%d %H:%M:%S")
>>> t2-t1
datetime.timedelta(1)

>>> (t2-t1).days
1
>>> (t2-t1).seconds
0
3
John La Rooy

あなたがPython 2.4システムで立ち往生している場合:

from time import strptime
from datetime import datetime

str_to_datetime = lambda st: datetime(*strptime(st, '%Y-%m-%d %H:%M:%S')[:6])

str_to_datetime('2010-04-20 10:07:30')

それ以外の場合、datetime.strptime()は問題なく機能します。

3
rubayeet