2 つの異なる形式の 2 つの文字列があります。たとえば、最初の形式: "08:50 09:50" 2 番目の形式: "10:30"
最初の値を解析して 01:00 に減算し、解析後に 2 番目の値に追加して合計 = 11:30 を取得するにはどうすればよいですか
2 つの異なる形式の 2 つの文字列があります。たとえば、最初の形式: "08:50 09:50" 2 番目の形式: "10:30"
最初の値を解析して 01:00 に減算し、解析後に 2 番目の値に追加して合計 = 11:30 を取得するにはどうすればよいですか
フォーマットは基本的に同じHH:mm
で、SimpleDateFormatを使用して解析およびフォーマットできます。文字列を分割するには、次を使用できます.split(" ")
このようなものが機能するはずだと思います
String a = "08:50 09:50";
String b = "10:30";
String[] c = a.split(" ", 2);
DateFormat sdf = new SimpleDateFormat("hh:mm");
Date t1 = sdf.parse(c[0]);
Date t2 = sdf.parse(c[1]);
Date t3 = sdf.parse(b);
long t = (t2.getTime() - t1.getTime()) + t3.getTime();
Time time = new Time(t)
これが分:秒であると仮定すると(時:分がそれに応じて変化する場合)、カレンダーを使用してそうすることができます:
String[] tokens1 = "08:50 09:50".split(" ");
String[] tokens2 = tokens[0].split(":");
int minutes1 = Integer.valueOf(tokens2[0]);
int seconds1 = Integer.valueOf(tokens2[1]);
tokens2 = tokenss[1].split(":");
int minutes2 = Integer.valueOf(tokens2[0]);
int seconds2 = Integer.valueOf(tokens2[1]);
Calendar cal = Calendar.getInstance();
cal.setTime(new Date(0l));
cal.add(minutes2, Calendar.MINUTE);
cal.add(-minutes1, Calendar.MINUTE);
cal.add(seconds2 , Calendar.SECOND);
cal.add(-seconds1 , Calendar.SECOND);
int minuteDifference = cal.get(Calendar.MINUTE);
int secondDifference = cal.get(Calendar.SECOND);
これにより、2 回目と 1 回目の違いがわかります。次に、同じ分割とカレンダーのメカニズムを使用して、3 回目の解析と追加を行います。