http://dev.mysql.com/doc/refman/5.0/en/datetime.html に従います。文字列値 'YYYY-MM-DD HH:MM:SS'をタイムスタンプintに変換する方法を見つけました。
私はpythonのドキュメントで調べました。
私は試した:
print(time.strptime('2013-01-12 15:27:43', '%Y-%m-%d %H:%M:%S'))
pythonはこのような結果を私に与えます。
time.struct_time(tm_year = 2013、tm_mon = 1、tm_mday = 12、tm_hour = 15、tm_min = 27、tm_sec = 43、tm_wday = 5、tm_yday = 12、tm_isdst = -1)
タイムスタンプをYYYY-MM-DD HH:MM:SS形式に変換するためにこれを試しました
print(time.strftime('%Y-%m-%d %H:%M:%S',time.time()))
pythonで型エラーが発生します。
私はタイムスタンプを使用して時間と日付を計算するだけです.Pythonにはすでにシンプルで効率的な方法があり、一時データを作成する必要がないことを願っています。
答えによれば、私は2つの方法を書きます。それが役立つことを願っています
import time
def convertTimestampToSQLDateTime(value):
return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(value))
def convertSQLDateTimeToTimestamp(value):
return time.mktime(time.strptime(value, '%Y-%m-%d %H:%M:%S'))
私が適切に理解していない場合、これを更新して幸せですが、ここに役立ついくつかの例があります。これはdatetime
の代わりにtime
モジュールを使用することに注意してください。
_>>> import datetime
_
ここでは、タイムスタンプの例ts
とフォーマットf
を設定します。
_>>> ts = '2013-01-12 15:27:43'
>>> f = '%Y-%m-%d %H:%M:%S'
_
上記と同様に、strptime
関数(_datetime.datetime
_から)を使用して、書式設定パラメーターに基づいて文字列をdatetime
オブジェクトに変換します。
_>>> datetime.datetime.strptime(ts, f)
datetime.datetime(2013, 1, 12, 15, 27, 43)
_
逆になりました-ここではdatetime.datetime.now()
を使用して現在の時刻をdatetime
オブジェクトとして取得します。
_>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2013, 1, 12, 0, 46, 54, 490219)
_
datetime
の場合、strftime
メソッドはdatetime
オブジェクト自体で実際に呼び出され、フォーマットパラメーターを引数として使用します。
_>>> now.strftime(f)
'2013-01-12 00:46:54'
_
あなたの状況では、エラーが発生した理由は、time.time()
がfloatを返すためです。
_>>> time.time()
1357980846.290231
_
ただし、_time.strftime
_には、上記と同様のtime
タプルが必要です。狂ったスパイラルに陥ることなく、time.localtime()
などの関数は前述のtime
Tupleを返し、期待どおりに戻ります。
_>>> now = time.localtime()
>>> now
time.struct_time(tm_year=2013, tm_mon=1, tm_mday=12, tm_hour=0, tm_min=55, tm_sec=55, tm_wday=5, tm_yday=12, tm_isdst=0)
>>> f = '%Y-%m-%d %H:%M:%S'
>>> time.strftime(f, now)
'2013-01-12 00:55:55'
_