2

私はローカルでアプリケーションを開発し(これは私の最初の実際の商用アプリです)、タイムスタンプはO/Sが使用していたタイムゾーンに設定されました。NOW()別のタイムゾーンでホストされているサーバーにアプリケーションを配置したとき、そのことを考慮せず、TIMESTAMP別の日付が生成されました。

私の問題について読んだ後、これを処理する正しい方法は、日付/タイムスタンプをUTCで保存し、クライアントコードで必要な指定されたタイムゾーンに変換することです。残念ながら、アプリケーションを長時間実行していて、特定のタイムゾーンにスタンプされた1000のエントリがあり、次の方法でハッキーな修正を行いました。

SET time_zone='-6:00'

現在、DSTに苦労しています(MySQLサーバーが使用しているタイムゾーン名をサポートしていないため)。

UTC->タイムゾーンとすべてのデータベースをUTCに変換するために、すべてのコードを変換する必要がありますか?または、DSTを処理する適切なタイムゾーン名をホストにインストールさせる必要がありますか?

4

2 に答える 2

1

もし私があなただったら、コードをUTCでのすべての時間値の保存/取得を使用するように変換してから、データベースの値を適切に調整します。

これは私が知っているPITAですが、長期的には頭痛の種は少なくなるでしょう。

于 2012-10-24T16:47:10.097 に答える
1

今は痛いかもしれませんが、UTCですべてを維持する適切な変換が進むべき道です。アプリをあと数日だけ実行する必要がある場合を除きます。米国が非夏時間に切り替わる前に、これを管理する必要があります。UTCでシステムを維持することで、将来的に多くの時間を節約できます。幸運を。

于 2012-10-24T16:47:51.713 に答える