40

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'))
4

2 に答える 2

58

私が正しく理解していない場合は、これを更新して喜んでいますが、役立つかもしれないいくつかの例を次に示します。datetimeこれは の代わりにモジュールを使用することに注意してくださいtime

>>> import datetime

tsここでは、タイムスタンプとフォーマットの例を設定しますf

>>> ts = '2013-01-12 15:27:43'
>>> f = '%Y-%m-%d %H:%M:%S'

上記と同様に、strptime関数 (from ) を使用して、書式設定パラメーターに基づいて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タプルを返し、期待どおりに返します。

>>> 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'
于 2013-01-12T08:57:07.507 に答える