6

JodaTimeプラス」または「マイナス」関数を使用せず、最小限のコード行を使用して、時間を変更せずに新しい日付を設定するにはどうすればよいですか?

私の最初の試みは、の「時間」部分をandなどを使用DateTimeして別々に保存することでした-次に、必要な日付で新しいものを作成し、時間、分、秒を再度設定します。しかし、この方法は非常に扱いにくいので、これを行うためのより簡潔な方法 (理想的には 1 行のコードのみ) があるかどうか疑問に思っていました。intgetHoursOfDay()getMinutesOfHour()DateTime

例えば:

22/05/2013 13:40:02>>>>30/08/2014 13:40:02

4

3 に答える 3

2

JodaTime は必須ですか? これを行う基本的な方法は、1.タイムスタンプから時間だけを抽出することです。2.これをちょうど日付に追加します


long timestamp = System.currentTimeMillis(); //OK we have some timestamp
long justTime = timestamp % 1000 * 60 * 60 * 24;// just tiem contains just time part


long newTimestamp = getDateFromSomeSource();//now we have date from some source
justNewDate = newTimestamp - (newTimestamp % 1000 * 60 * 60 * 24);//extract just date

result = justNewDate + justTime; 

このようなもの。

于 2013-10-11T10:33:24.940 に答える
1

次のようにwithFieldsを使用します。

new DateTime().withFields(new LocalDate(2000,1,1))

これにより、のすべての日時フィールドが、この場合は年、月、日にDateTime含まれるものに設定されます。LocalDateこれは、たとえば、どのReadablePartialような実装でも機能します。YearMonth

于 2013-10-22T10:34:23.830 に答える