5

Web アプリケーションでユーザーのさまざまなタイムゾーンを管理したくありませんが、どこから始めればよいかわかりません。各ユーザーの現地時間をデータベースに保存する必要がありますか? または、UTC 時間に変換して保存し、再度変換して表示する必要がありますか? または別の方法がありますか? たとえば、ユーザーの 1 人が現地時間で予定を立てた場合、それを UTC に変換してデータベースに保存し、必要なときに再度現地時間に変換して表示する必要があります。ちなみにDjangoを使っています。ありがとう。

4

4 に答える 4

2
  1. 日付/時刻を UTC として保存します (そのための Python コマンドが何であるかはわかりません)

  2. 日付を出力するときは、現在のユーザーのタイムゾーン設定を取得するヘルパー関数でそれらをラップし、オフセットの時刻/日付を調整してから、アプリケーションから出力します。

http://docs.python.org/library/time.html

http://docs.python.org/library/datetime.html

于 2009-11-16T23:20:42.300 に答える
1

Django snippitUTCDateTimeフィールドを試してください。箱から出してすぐに必要なものがすべて揃っています。

于 2009-11-16T23:13:29.430 に答える
1

UTC 時間に変換して保存し、再度変換して表示しますか?

はい、ローカル タイムゾーンが 1 つしかない場合でも、通常は日付を UTC タイムスタンプとしてデータベースに保存し、webapps の入力および出力段階で適切なタイムゾーンのテキストとの間で変換する必要があります。ユーザーごとのタイムゾーンが保存されている場合、カスタマイズされたタイムゾーンのデフォルトのタイムゾーンを簡単に切り替えることができます。

pytzは、タイムゾーンを選択して変換するための通常のソリューションです。(個人的には、あまり圧倒されない独自のタイムゾーンのコレクションをハックしました。)

于 2009-11-16T23:20:05.710 に答える
0

単一の「データベース時間」タイムゾーンを使用することは、IMO では次の理由から最適なオプションです。

  • 異なるタイムゾーンの人々に対処するためのルーチンを大幅に簡素化します
  • 他のタイムゾーンへの変換が容易になります
  • ユーザーのビューのコンテキスト外でデータを見ている人は誰でも、それが UTC であると想定でき、あるレコードの「12:45」が別のレコードの「12:45」であるかどうかを推測する必要はありません。
  • 基準は良い

あ、はい。ユーザーのタイムゾーンをデータベースに保存し、すべての時間を共通の時間 (UTC など) で保存します。ユーザーが時間を含む何かを見たときにそれらを変換します。これは、すべてのユーザーが同じタイムゾーンにいるふりをすることを強制するだけではない、最も単純なソリューションです。

于 2009-11-16T23:19:59.830 に答える