残りの部分からの応答は、次のようなエポックタイム形式になっています。
start_time = 1234566
end_time = 1234578
そのエポック秒をMySQLフォーマットの時間に変換して、その差分をMySQLデータベースに保存したいのです。
私は試してみました。
>>> import time
>>> time.gmtime(123456)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=10, tm_min=17, tm_sec=36, tm_wday=4, tm_yday=2, tm_isdst=0)
上記の結果は、私が期待しているものではありません。次のようにしたいと思います。
2012-09-12 21:00:00
どうすればいいのか教えてください。
また。
で TypeError: a float is required
が発生するのはなぜですか?
>>> getbbb_class.end_time = 1347516459425
>>> mend = time.gmtime(getbbb_class.end_time).tm_hour
Traceback (most recent call last):
...
TypeError: a float is required
試してみてください。
>>> import time
>>> time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(1347517119))
'2012-09-12 23:18:39'
また、MySQLでは、FROM_UNIXTIME
のようにすることもできます。
INSERT INTO tblname VALUES (FROM_UNIXTIME(1347517119))
2番目の質問については、おそらく getbbb_class.end_time
が文字列であることが原因です。 以下のように数値に変換することができます。float(getbbb_class.end_time)
となります。
最初に、man gmtimeからepochの情報を少しだけ。
The ctime(), gmtime() and localtime() functions all take an argument of data type time_t which represents calendar time. When inter-
preted as an absolute time value, it represents the number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal
Time (UTC).
を見て、epochがどうあるべきかを理解します。
>>> time.time()
1347517171.6514659
>>> time.gmtime(time.time())
(2012, 9, 13, 6, 19, 34, 3, 257, 0)
time.gmtime()に渡している引数が整数であることを確認してください。