0

そのため、Java、休止状態、および mysql (Spring MVC) を使用して新しいプロジェクトを開始しています。

データベース レベルでは、どの列タイプを使用すればよいですか?

Java レベルでは、Joda 時間を使用する必要があると思います。

ユーザー テーブルには時間オフセットが格納され、データベースの UTC 値を使用して UI レベルで変換/フォーマットされます。

hibernate では、joda time hibernate プラグインが本当に必要ですか、それとも joda time を十分に追加していますか?

誰かが私が必要とするメソッド、またはソースコードについて説明した記事を教えてもらえますか?

4

2 に答える 2

0

データベースの列をTIMESTAMPとして定義し、オブジェクトを使用してHibernateでマップすることができると思いますTimeStamp

Java側で使用SimpleDateFormatして、以下のように日時文字列を取得しUTCます。

    DateFormat formatter = new SimpleDateFormat("MM/DD/yyyy hh:mm a");
    formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
    Date date = new Date(timeStamp.getTime());  
    String dateString = formatter.format(date);
    System.out.println(dateString);
于 2012-11-07T15:05:33.177 に答える
0

データベース レベルでは、日時またはタイムスタンプ (MySQL の場合) を列の型として使用できます。Java では、java.sql.Timestamp を使用する必要があります。

Joda 時間は可能ですが、絶対に必要というわけではありません。

データベース時間の値は、UTC または現地時間として保存できます。UTC を使用することを強くお勧めします。jdbc 接続文字列 (つまり、hibernate.cfg.xml) で、日付が常に UTC か現地時間かを定義でき、JDBC は必要に応じてタイム ゾーン変換を行います (UTC または現地時間以外のタイム ゾーンは変換できません)。 JDBC レベルで定義されており、使用すると大変なことになります)。

このようにすると、Java クラスの Calendar、Timezone、DateFormat を除いて、タイム ゾーンを変換するための特別なメソッドは必要ありません。

于 2012-11-07T15:42:42.690 に答える