私は(私のアプリケーションがさまざまなソースやさまざまなタイムゾーン、形式などからの大量のデータを処理しているため)データを保存して操作するのに最適な方法を決定しようとしています。
たとえば、すべてをUTCとして保存する必要がありますか?つまり、データをフェッチするときに、現在のタイムゾーンを特定する必要があります。UTCでない場合は、必要な変換を行ってデータを取得します。(注、私はESTにいます)。
次に、データに対して計算を実行するときに、抽出して(UTCと言う)、MYタイムゾーン(EST)に入る必要があるので、それを見るときに意味がありますか?UTCで保持し、すべての計算を行う必要がありますか?
このデータの多くは時系列であり、グラフ化され、グラフはESTになります。
これはPythonプロジェクトなので、次のようなデータ構造があるとします。
"id1": {
"interval": 60, <-- seconds, subDict['interval']
"last": "2013-01-29 02:11:11.151996+00:00" <-- UTC, subDict['last']
},
そして、現在の時刻(now())が>最後の+間隔(60秒が経過した)であるかどうかを判断することによって、これを操作する必要がありますか?したがって、コードでは:
lastTime = dateutil.parser.parse(subDict['last'])
utcNow = datetime.datetime.utcnow().replace(tzinfo=tz.tzutc())
if lastTime + datetime.timedelta(seconds=subDict['interval']) < utcNow:
print "Time elapsed, do something!"
それは理にかなっていますか?私はどこでもUTCを使用しており、保存と計算の両方で...
また、ソフトウェアでタイムスタンプを操作する方法についての優れた記事へのリンクがあれば、ぜひ読んでみてください。おそらく、アプリケーションでタイムスタンプを使用するためのJoel On Softwareのように?