時間を扱うために、Pythonは異なるパッケージ(datetime
、、calendar
)を提供しています(here)。私は大きな間違いをして現在のGMT時間を取得しましたtime.mktime(datetime.datetime.utcnow().timetuple())
現在のGMT時間をUnixタイムスタンプ形式で取得する最も簡単な方法は何ですか?
Unixタイムスタンプで現在のGMT時間を取得する簡単な方法はありますか?
時間を扱うために、Pythonは異なるパッケージ(datetime
、、calendar
)を提供しています(here)。私は大きな間違いをして現在のGMT時間を取得しましたtime.mktime(datetime.datetime.utcnow().timetuple())
現在のGMT時間をUnixタイムスタンプ形式で取得する最も簡単な方法は何ですか?
Unixタイムスタンプで現在のGMT時間を取得する簡単な方法はありますか?
これは役に立ちますか?
from datetime import datetime
import calendar
d = datetime.utcnow()
unixtime = calendar.timegm(d.utctimetuple())
print unixtime
'datetime.utcnow()。utctimetuple()'の代わりに、 '' time.gmtime() '](http://docs.python.org/2/library/time.html#time.gmtime )。 – Cairnarvon
リンクが死んでいる! –
@ GauravDaveありがとう、私はアーカイブされたバージョンでリンクを更新しました。 –
私はエポックからの秒数でのタイムスタンプを取得するためにtime.time()を使用します。
import time
time.time()
出力:ほとんどのプラットフォーム上での標準的なCPythonの実装のために
1369550494.884832
これはUTC値を返します。
あなたのマシンのローカル時計はUTCでない可能性があります。 – 9000
@ 9000:正直なところ、私は常に時間が重要なあらゆる環境でUTCを主張していました。そして、彼は最も簡単な解決策を求めました。 Linux、BSD、Mac OS X、およびWindowsを含む最新のプラットフォーム上のCPythonでは、すべてtime.time()のUTCが返されることに注意してください。これは、これらのOSでのC標準ライブラリの時間関数の動作を反映しています。 –
@ 9000:ローカルのタイムゾーンは関係ありません。 Unix時間はUTC時間に相当します(うるう秒を無視した場合)。それについて考えてみましょう。タイムスタンプは、エポックからの経過秒数です(一定の瞬間)。なぜ、タイムゾーンマシンのローカルクロックが使用するものに依存するのでしょうか?どの瞬間でも、Unixの時間は世界中で同じです。いくつかの(未知の)プラットフォームでは異なるエポックを使用するかもしれませんが、その値はローカルタイムゾーンに依存しません。 – jfs
私はこの方法を好む:
import datetime, time
dts = datetime.datetime.utcnow()
epochtime = round(time.mktime(dts.timetuple()) + dts.microsecond/1e6)
ここに掲載その他の方法は、いずれかのすべてのプラットフォーム上であなたにUTCを与えるか、または全体のみ秒を報告することが保証されていません。あなたが完全な解像度を望むなら、これはマイクロ秒にも作用します。
をしたい解像度に応じて掛けることができますを使用して、入力/出力は何ですか? 'datetime.utcnow()'は現在のUTC時刻をdatetimeオブジェクトとして返します(「GMT時刻」について話しているときはUTCが必要です)。 'time.time()'はUnixのタイムスタンプを直接浮動小数点数として返します。ここでは、[時刻を表すdatetime.date/datetime.datetimeをUTCからPOSIXタイムスタンプに変換する方法](http://stackoverflow.com/a/8778548/4279)です。 – jfs
提案した方法が間違っているか、あまりにも冗長すぎますか?関連:http://stackoverflow.com/questions/15940280/how-to-get-utc-time-in-python –
あなたの方法は間違っていたのですか? – skeller88