383

残りからの応答は、次のようなエポック時間形式です

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
4

9 に答える 9

444

時間値(floatまたはint)をフォーマットされた文字列に変換するには、次を使用します。

import time

time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1347517370))

例えば:

import time

my_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1347517370))

print(my_time)
于 2012-09-13T06:27:03.530 に答える
19

これはあなたが必要とするものです

In [1]: time.time()
Out[1]: 1347517739.44904

In [2]: time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(time.time()))
Out[2]: '2012-09-13 06:31:43'

floatan の代わりにa を入力してintくださいTypeError

mend = time.gmtime(float(getbbb_class.end_time)).tm_hour
于 2012-09-13T06:34:02.683 に答える
12

これを試して:

>>> import time
>>> time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(1347517119))
'2012-09-12 23:18:39'

FROM_UNIXTIMEまた、MySQL では、次のようなことができます。

INSERT INTO tblname VALUES (FROM_UNIXTIME(1347517119))

2番目の質問については、おそらくgetbbb_class.end_time文字列であるためです。次のように数値に変換できます。float(getbbb_class.end_time)

于 2012-09-13T06:22:01.597 に答える
8
#This adds 10 seconds from now.
from datetime import datetime
import commands

date_string_command="date +%s"
utc = commands.getoutput(date_string_command)
a_date=datetime.fromtimestamp(float(int(utc))).strftime('%Y-%m-%d %H:%M:%S')
print('a_date:'+a_date)
utc = int(utc)+10
b_date=datetime.fromtimestamp(float(utc)).strftime('%Y-%m-%d %H:%M:%S')
print('b_date:'+b_date)

これは少し冗長ですが、UNIX の date コマンドから来ています。

于 2013-10-20T04:02:14.740 に答える
5

mangmtimeからのエポックの最初の少しの情報

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).

エポックがどうあるべきかを理解する。

>>> time.time()
1347517171.6514659
>>> time.gmtime(time.time())
(2012, 9, 13, 6, 19, 34, 3, 257, 0)

渡す引数time.gmtime()が整数であることを確認してください。

于 2012-09-13T06:25:32.743 に答える