日付操作に関する他のすべてのQ/Aを読んだことがありますが、私の懸念に満足できる回答はありません。地理的に多様なユーザのための日付操作/保管のためのJavaベストプラクティス
私は地理的に多様なユーザーを対象に、そのクラスとデータの一部でDate
を使用するプロジェクトを持っています。問題は、それぞれのタイムゾーンで異なるユーザーの日付を操作する効率的な方法を探していることです。回答のほとんどは Date
のライブラリのライブラリを使用することをお勧めします。まだ理解できません。あなたは従来のJavaではできない操作なので、伝統的なJavaではできないJodaで何ができるか説明できる人は、私はそれを使うことを検討するかもしれません。
最後に、System.currentTimeMillis()
を使用してデータベース(任意のデータベース)に日付を保存するというアプローチになりました。これにより、タイムゾーンが日付を格納するためにデータベースを使用しているかどうか心配する必要がなくなります。
SELECT * FROM table1 WHERE date1>=1476653369000
そして、私はその後、フォーマットうResultSet
を取得:私は日付の特定の日付または範囲のためのデータベースを照会したい場合、私は照会するDate
のlong
値を使用してクエリを実行しますlong
値は、データを要求するユーザーのタイムゾーンを使用して、読み取れるDate
にデータベースから取得されます。
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(resultSet.getLong(1));
cal.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta"));
Date myDate = cal.getTime();
は、私が読んだことがあるいくつかの意見によると、一部の人々はは、それが推奨されていない理由を、彼らはすべてのミスを言うためにいくつかの理由でSystem.currentTimeMillis()
を格納すると、それにもかかわらず、間違いなくベストプラクティスではないことを強調言います。何か不足していますか?これにより、コンバージョンのパフォーマンス上の問題が発生しますかLong->Date
/Date->Long
?データベースにDate
の代わりにLong
を使用すると達成できないユースケースはありますか?誰かがこれについての論理的な説明を投稿できますか?
一方、Date
の値をデータベースに保存すると仮定すると、データベースDate
を処理している時間帯について心配することはありませんか?
ありがとうございます。