1

ログファイルを処理している間、私はepocと人間が読めるタイムスタンプを比較する必要があります。

epoc=time.strftime("%d.%m.%Y %H:%M - %Z", time.localtime(1358252743927))
print epoc

t1=time.gmtime(1358252743927)
print t1

どちらも次のようなものを返します

26.04.4501122:52-CEST

一方、このサイトを使用して1358252743927を変換すると、

GMT: Tue, 15 Jan 2013 12:25:43 GMT
Your time zone: 1/15/2013 1:25:43 PM GMT+1

これは正しい時刻ですが、どういうわけかPythonはこのタイムスタンプを処理できません。

タイムスタンプを変換して後者の結果を取得する方法を知っている人はいますか?

4

2 に答える 2

3

そこにあるタイムスタンプにはミリ秒があるように見えますが、gmtitme関数はそれを処理できません。あなたが言及したサイトはできます。その巨大な数字の下3桁を削除しても、45011年が本当に必要であるとは信じられないので、サイトは同じ結果を提供します。

したがって、渡す前に数値を1000で割るだけで(確信がある場合は、常にその高解像度が得られます)、問題ありません。

t1 = time.gmtime(1358252743.927)
print t1

与える:

time.struct_time(tm_year=2013, tm_mon=1, tm_mday=15, tm_hour=12, tm_min=25, tm_sec=43, tm_wday=1, tm_yday=15, tm_isdst=0)

これは問題ないようです。

于 2013-02-28T10:01:25.977 に答える
2

Python はエポック時間を秒単位で処理しますが、タイムスタンプの大きさを見て、ミリ秒単位になっているのではないかと思います。

最後の 3 桁を削除すると、予想される時間が得られます。

>>> value = 1358252743927
>>> import time
>>> time.strftime("%d.%m.%Y %H:%M - %Z", time.localtime(value / 1000))
'15.01.2013 13:25 - CET'

(Python で知られているタイムゾーンの問題を除く)。

于 2013-02-28T10:02:27.233 に答える