Webアプリケーションの正確な時間(夏時間)を保持する方法は?
-
06-07-2019 - |
質問
さて、これは簡単な質問かもしれませんが、私はまだ有効な解決策を持っていません。
次のシナリオを考慮してください。MySQL上で実行するWebアプリケーション(知っている必要がある場合)は、ユーザーが指定した時間に電子メールを送信するアプリケーションに依存します。これで、すべてのユーザーが適切なタイムゾーン/都市を設定し、サーバーは簡単にするためにUTCで実行されています。正確な時間は、サーバー時間+タイムゾーン+夏時間になります。ユーザーは、2010年1月4日の午後5時00分にメールが届きたいと考えています。 私の質問は、正しい夏時間を取得する方法ですか?つまり、このユーザーはDSTを監視している地域にいるのですか?
最初の衝動は、現在のタイムゾーン/都市が適切な夏時間を提供するWebサービスを見つけることです。これまでのところ、私は1つを見つけていません。私は2番目のアイデアに失望しています。これらは年ごとに、また一部の国では1〜2日以上変化するため、DSTのルールを設定する必要があります。
ご協力ありがとうございます。
解決
プログラミング言語が派手なタイムゾーンロジックをサポートしていない場合、自分でルールをプログラミングする必要はありません。 zoneinfo データベースのサポートをプログラムする必要があります。
他のヒント
日付を1970年1月1日GMTからの秒数としてデータベースに保存すると、常に時間を処理できます。ユーザーが自分の時間を入力したら、正しいタイムゾーン設定を使用して適切に変換すれば完了です。
サーバーはすでにタイムゾーンなしで実行されているため、時間が来たら簡単に選択できます。
LISPでタイムゾーン変換を行うためのいくつかのコードは次のとおりです。