web-dev-qa-db-ja.com

pythonで日付時刻から秒を減算します

実際には秒であるint変数があります(その秒数をXと呼びます)。結果として、現在の日付と時刻(日時形式)からX秒を引いた値を取得する必要があります。

Xが65で、現在の日付が2014-06-03 15:45:00の場合、結果を取得する必要があります2014-06-03 15:43:45

環境

私はこれをPython 3.3.3で実行しています。おそらくdatetimeモジュールを使用できると思いますが、これまでのところ成功していません。

24
rodrigocf

datetimeモジュールを実際に使用する:

import datetime

X = 65
result = datetime.datetime.now() - datetime.timedelta(seconds=X)

このパッケージの documentation を読んで、使い方を学んでください!

41
julienc
>>> from datetime import datetime, timedelta
>>> now = datetime.now()
>>> now
datetime.datetime(2014, 6, 3, 22, 55, 9, 680637)
>>> now - timedelta(seconds=15)
datetime.datetime(2014, 6, 3, 22, 54, 54, 680637)

これはコアライブラリソリューションです。通常、このタスクでは、サードパーティのクラスを dateutil.relativedelta 、より多くのパラメーターとより高い柔軟性があります。

2
wim

@juliencの答えを拡張するには(誰かに役立つ場合)

Xに正または負の値を受け入れさせ、減算ステートメントを加算ステートメントに変更すると、次のように、より直感的になります(正値を得るために負値に負値を追加する必要はありません)。

def adjustTimeBySeconds(time, delta):
    return time + datetime.timedelta(seconds=delta)

time = datetime.datetime.now()
X = -65
print(adjustTimeBySeconds(time, X))
X = 65
print(adjustTimeBySeconds(time, X))
1
AlienFromCA