0

私は次のようなActionクラスを持っています:

public class Action implements Serializable {
    private Integer actionID;
    private Integer actionStatus;
    private User    user;
    private Date    actionDueDate;
 }

を保存するために休止状態を使用していActionます。ユーザーactionDueDateは自分のタイムゾーンで を選択します。

  1. Action's actionDueDateユーザータイムゾーンをUTCに変換した後、UTCに変換したい。これを行う方法を教えてください。私は自分の変換を喜んで書いていますが、Hibernate がこれを自動的に処理できるかどうか、または他のより良い方法があるかどうか疑問に思っています。私のデータベースは MySQL です。

  2. オブジェクト プロパティが Java/Hibernate で初期化される順序を指定する方法はありますか? 独自のコンバーターを作成している場合は、 のUser前にプロパティを初期化する必要があるためactionDueDateです。

4

3 に答える 3

1

java.util.Date にはタイム ゾーン情報が含まれていません。基本的には、getTime() によって返される long の薄いラッパーです。actionDueDate を Long に変更し、代わりにそれを保持します。

または、 Joda -Time を使用して actionDueDate を org.joda.time.DateTimeに変更ます。

于 2013-06-26T00:15:36.970 に答える
0
SimpleDateFormat dateFormatUTC = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
        dateFormatUTC.setTimeZone(TimeZone.getTimeZone("UTC"));
        SimpleDateFormat dateFormatlocal = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
        dateFormatlocal.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
        Date localDate=new Date();
        Date atUTC = dateFormatlocal.parse(dateFormatUTC.format(localDate));

        System.out.println("@Local: "+localDate.toString());
    System.out.println("@UTC: "+atUTC.toString());

これにより、夏時間も処理されます。どう思いますか。

出力:

@Local: Thu Jun 27 08:45:32 EST 2013
@UTC: Thu Jun 27 15:45:32 EST 2013
于 2013-06-26T22:07:13.963 に答える
0

ローカルタイムなどを取得できる Java で国際化の概念を使用できます。

于 2013-06-26T05:21:10.987 に答える