如何用2种不同的格式解析字符串的持续时间并添加它们?

时间:2012-08-03 11:39:27

标签: java

我有两种不同格式的字符串 例如 第一种格式:“08:50 09:50” 第二格式:“10:30”

我该如何解析&将第一个减去01:00并在解析后将其添加到第二个,得到总数= 11:30

3 个答案:

答案 0 :(得分:0)

格式基本相同HH:mm,您可以使用SimpleDateFormat解析和格式化。要拆分字符串,可以使用.split(" ")

答案 1 :(得分:0)

我认为这样的事情应该有效

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) 

答案 2 :(得分:0)

假设这是几分钟:秒(如果它是小时:分钟同意改变),您可以使用日历来执行此操作:

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次之间的区别。现在使用相同的拆分和日历机制来解析第三次并进行添加。