日付フィールドを変換したい (PostgreSQL 文字列から取得)
"2009-02-13 15:31:30.123000"
のような UNIX タイムスタンプに
1234567890.123
精度はミリ秒レベルです。これどうやってするの?
datetime.datetime.strptime(some_datetime_string, '%Y-%m-%d %H:%M:%S.%f') を使用して日時文字列を解析できます。
そして、この回答Python Create unix timestamp five minutes in futureを使用して、datetime.datetime を unix タイムスタンプに変換します。
まず、datetime
オブジェクトに変換します。
>>> import datetime
>>> date = datetime.datetime.strptime("2009-02-13 15:31:30.123000",
... "%Y-%m-%d %H:%M:%S.%f")
>>> date
datetime.datetime(2009, 2, 13, 15, 31, 30, 123000)
次に、タイムスタンプに変換します。
>>> import time
>>> t = time.mktime(date.timetuple())
>>> t
1234535490.0
ここで、マイクロ秒を追加します。
>>> t += date.microsecond/1000000.0
>>> t
1234535490.123
または、ミリ秒未満のものを破棄する場合:
>>> t += int(date.microsecond/1000)/1000.0
(int()
変換は Python 2 では必要ありませんが、Python 3 との互換性のために残されています)。