2

質問タイトルの通り、

入力としてjava.sql.Dateandを持っていますjava.sql.Time

今、それらをオブジェクトに変換したいのですDateTimeが、getDay、getYear などのメソッドは廃止されているため、2 つを組み合わせる方法がわかりません...

4

3 に答える 3

2

これで問題が解決するかどうかを確認してください。

Date date = new Date(System.currentTimeMillis()); // Prints 2013-03-08
Time time = new Time(System.currentTimeMillis()); // Prints 15:40:33

String myDate = date + " " + time;

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date utilDate = new java.util.Date();
try {
    utilDate = sdf.parse(myDate); // You get a Java Util Date object(Fri Mar 08 15:40:33 IST 2013)
} catch (ParseException pe) {
   // TODO something.
}

DateTime dateTime = new DateTime(utilDate); // You get your JODA object.
于 2013-03-08T10:12:31.033 に答える
1

日付から DateTime オブジェクトを作成し、その DateTime オブジェクトに Duration オブジェクトを追加すると、入力によって表される日付 + 時間の瞬間である単一のオブジェクトが生成されます。

次のようなもの:

Date d = //your Date
Time t = //your time

DateTime result = new DateTime(d).plus(t.getTime());

これにより、必要な瞬間を表す不変オブジェクトが生成されます....私はあなたの質問を正しく理解し、時間を表す2つの異なるクラスを「追加」する方法です。

于 2013-03-08T10:14:35.440 に答える
0

java.sql.Time でいくつかのトリックを行うだけです: 期間を計算します。java.sql.Time は、暗黙的に日付コンポーネントを 1970 年 1 月 1 日に設定します。

    java.sql.Date epoch = new Date(70, 0, 1);
    java.sql.Date date = new Date(113, 2, 8);
    java.sql.Time time = new Time(1, 1, 1);
    DateTime dt = new DateTime(date.getTime())
            .plus(time.getTime() - epoch.getTime());
    System.out.println(date);
    System.out.println(time);
    System.out.println(dt);
于 2013-03-08T10:10:04.110 に答える