2011-10-05 13 views
1

中)(時間を使って、このエラーを把握することはできませんすることは私のコードです:私はここでのpython

# Given an Unix timestamp in milliseconds (ts), return a human-readable date and time (hrdt) 
def parseTS(ts): 
    hrdt = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.time(int(ts)/1000)) 
    return str(hrdt) 

私はこのエラーを取得しています:

TypeError: time() takes no arguments (1 given) 

UPDATE:

をこれはうまくいった:

hrdt = datetime.datetime.fromtimestamp(int(ts)//1000) 
return hrdt 
+2

Nitpick: 'int型(TS)/ 1000 '床部門を行うには時代遅れの方法です。 'ts // 1000'を使って、将来のPythonバージョンでコードが正しく動作することを確認してください。 –

答えて

4

time.time(int(ts)/ 1000)関数が間違っています。

time.ctime、time.gtime()またはtime.localtime()関数のいずれかを試して、必要なものを実現してください。

Python Docs (Time)

+0

私はタイムゾーンを変更したくありません。私はタイムスタンプをそのまま表現したいと思っています。これはUTC/GMTでなければなりません。これらのうち、システムの現地時間設定に基づいてタイムスタンプを変更しないものはどれですか? – Dan

+0

time.ctime()。時刻を変換するためのロケール情報はありません – sweetfa

+0

ありがとう、私はそれを試みましたが、さまざまなエラーが続いていました。何らかの理由で、ctimeは9桁のタイムスタンプを要求しますが、unixは10桁のタイムスタンプを返します。だから私は上記の変更を行った。 – Dan

0

エラーが示すように、time.time()は引数をとりません。現在の時刻を浮動小数点として返します。多分あなたはtime.ctime()のことを考えていますか?

+0

私はタイムゾーンを変更したくありません。私はタイムスタンプを現状どおりに表現したいと思います。これはUTC/GMTでなければなりません。これらのうち、システムの現地時間設定に基づいてタイムスタンプを変更しないものはどれですか? – Dan

+0

タイムスタンプを渡しています。 – Dan

0

問題はこれです:

time.time(int(ts)/1000) 

と(エラーがあなたを語っているように)、time() takes no arguments

それはあなたが何をしようとしては不明だが、多分あなたが欲しい:

int(time.time()/1000) 

それともint(time.time())あなたは浮動小数点部分のない時間を秒単位で必要な場合。

+0

タイムスタンプを渡しています。私はタイムゾーンを変更したくありません。私はタイムスタンプを現状どおりに表現したいと思います。これはUTC/GMTでなければなりません。これらのうち、システムの現地時間設定に基づいてタイムスタンプを変更しないものはどれですか? – Dan