4

時刻と日付の変数を DateTime に変換する方法はありますか?

2 つの DateTime 変数の間に期間があります。その期間の各 Date について、開始 DateTime と終了 DateTime でその Date に期間を格納したいので、1 日は DateTime で定義された複数の期間を持つことができます。

Date と Time を DateTime に組み合わせる方法がわかりません。

前もって感謝します!

4

6 に答える 6

10

プレーン JavaDateJoda-Time DateTimeが目的にかなうはずです。

Date date = new Date(); // java.util.Date; - This date has both the date and time in it already.
DateTime dateTime = new DateTime(date);

Joda-Time の詳細については、こちらをご覧ください。

2 つのStringオブジェクトがあり、一方が を保持しDate、もう一方が を保持しているTime場合、2 つの文字列を結合し、SDFを使用してそれを解析し、Dateオブジェクトを取得してから に変換できますDateTime

于 2013-03-07T15:55:35.980 に答える
5

これを使用して修正しました:

public DateTime dateAndTimeToDateTime(java.sql.Date date, java.sql.Time time) {
    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);
    } catch (ParseException pe){
        pe.printStackTrace();
    }
    DateTime dateTime = new DateTime(utilDate);

    return dateTime;
}
于 2013-03-11T11:34:08.540 に答える
3

この質問が少し古く、すでに回答されていたとしても、満足のいく解決策を見つけることができませんでした. この問題の最善の方法は、おそらく次のコードです (解析や例外処理は必要ありません)。

public DateTime dateAndTimeToDateTime(java.sql.Date date, java.sql.Time time) {
    DateTime t = new DateTime(time);
    return new DateTime(date).withTime(t.getHourOfDay(), t.getMinuteOfHour(), t.getSecondOfMinute(), t.getMillisOfSecond());
}
于 2016-04-26T10:27:53.013 に答える
2

日付と時刻のインスタンスを別々に構築する方法を見つけることができると確信しています。

ただし、datetime オブジェクト自体では、次のように指定できます。

dateTimeObject = dateTimeObject.withHourOfDay(12);
dateTimeObject = dateTimeObject.withMinuteofHour(59);
dateTimeObject = dateTimeObject.withSecondOfMinute(59);

お役に立てれば!

于 2013-03-07T16:09:11.953 に答える
1

java.time

Java の最新の日付と時刻の API である java.time を使用すると、これは単純明快です。

    LocalTime time = LocalTime.of(23, 45);
    LocalDate date = LocalDate.of(2019, Month.NOVEMBER, 23);

    LocalDateTime combined = date.atTime(time);
    System.out.println(combined);

出力は次のとおりです。

2019-11-23T23:45

あなたが Joda-Time について尋ねたことは知っています。ただし、Joda-Time のホームページには次のように書かれています。

Joda-Time は、大部分が「完成した」プロジェクトであると見なされていることに注意してください。大きな機能強化は予定されていません。java.timeJava SE 8 を使用している場合は、 (JSR-310)に移行してください。

リンク

于 2019-07-16T19:40:48.963 に答える