2016-04-23 8 views
0

.Iは、TIME1の出力があるfollowing-日に番号を追加します(H:MM:SS:SSS)私は(:mm:ssの:H SSS)日付ギを追加する形式

Date time1; 
    Date time2; 
    String result1; 
    SimpleDateFormat formatter; 
    formatter = new SimpleDateFormat("H:mm:ss:SSS"); 
    time1 = new Date(0,0,0,0,0,5); 
    time2=new Date(0,0,0,0,0,5); 

をしました0:00:05:000。今、私はそれらの2つの時間を追加して0:00:10:000を作りたいと思います。 time1+time2は使用できません。これを行う方法はありますか?

+0

のJavaドキュメントです'オブジェクトは、出力のために、それらはまだ日付です(よく、それらはより正確になるために瞬間を表します)。だから、2つの「日付」を追加するとどういう意味ですか?あなたの質問は理にかなっていません。 – Seelenvirtuose

+0

フォーマットされた出力が必要です。 2つの日付を追加することではありません。この形式の2つの番号を追加することです。 –

答えて

3

あなたはあなたの条件のためのカレンダーを使用することができます。

Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(new Date()); 
    calendar.set(Calendar.HOUR_OF_DAY,0); 
    calendar.set(Calendar.MINUTE,0); 
    calendar.set(Calendar.SECOND,5); 
    calendar.set(Calendar.MILLISECOND,0); 

    System.out.println(formatter.format(calendar.getTime())); 

    Calendar another = Calendar.getInstance(); 
    another.setTime(calendar.getTime()); 
    another.set(Calendar.HOUR_OF_DAY,0); 
    another.set(Calendar.MINUTE,0); 
    another.set(Calendar.SECOND,calendar.get(Calendar.SECOND)+5); 
    another.set(Calendar.MILLISECOND,0); 

    System.out.println(formatter.format(another.getTime())); 

OUTPUT:

0:00:05:000 
0:00:10:000 

ここでは、本当にあなたがあなたの `日付をフォーマットするかは問題ではありませんCalendar

+0

あなたの答えは私の質問通りです。実際には、私はループを使用して5秒の時間を増やしたいと思っています。あなたのやり方では、5秒を追加しています。それは私のために良いだろう私は秒だけでなく、全体の日付で5を追加することができます。ありがとう –

+0

よかった。そのためには、追加する秒数を計算してから、Calendarを使用して秒を追加するだけです。 – Unknown

+0

私はループで試して、秒間の余分な計算は必要ありません。 「2番目の+5」の式を「2番目の+ i」に置き換え、自動的に数分と数時間を処理しました。ありがとう。 –

1

new Date(time1.getTime() + time2.getTime())このトリックを行う必要があります。

getTime()は、1970年1月1日00:00:00 GMTからのミリ秒を返します。
new Date(0, 0, 0, 0, 0, 0)は、1970年1月1日00:00:00 GMTと同じです。したがって、基本的には5秒のミリ秒がtime1.getTime()time2.getTime()にしかないので、これらを合計してDateオブジェクトに戻すことができます。

関連する問題