在java中添加两个字符串时间

时间:2014-02-04 18:23:04

标签: java

我有两个字符串时间

1:30:00
1:35:00

是否有一种简单的方法可以添加这两次并获得一个新的时间应该是某种东西 3:05:00

我想在客户端这样做,所以如果我可以避免任何日期liabraries

4 个答案:

答案 0 :(得分:5)

请记住,您可以将小时/分钟/秒的int值转换为单个int,如下所示:

int totalSeconds = ((hours * 60) + minutes) * 60 + seconds;

转换回来:

int hours = totalSeconds / 3600;  // Be sure to use integer arithmetic
int minutes = ((totalSeconds) / 60) % 60;
int seconds = totalSeconds % 60;

或者你可以按如下方式逐步进行算术:

int totalHours = hours1 + hours2;
int totalMinutes = minutes1 + minutes2;
int totalSeconds = seconds1 + seconds2;
if (totalSeconds >= 60) {
  totalMinutes ++;
  totalSeconds = totalSeconds % 60;
}
if (totalMinutes >= 60) {
  totalHours ++;
  totalMinutes = totalMinutes % 60;
}

答案 1 :(得分:4)

String time1="0:01:30";
String time2="0:01:35";

SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
timeFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

Date date1 = timeFormat.parse(time1);
Date date2 = timeFormat.parse(time2);

long sum = date1.getTime() + date2.getTime();

String date3 = timeFormat.format(new Date(sum));
System.out.println("The sum is "+date3);

输出:The sum is 00:03:05

答案 2 :(得分:1)

使用SimpleDateFormat解析字符串然后您可以添加小时分钟和秒

类似

 SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
  d1 = df.parse("1:30:00");
  d2 = df.parse("1:35:00");

Long sumtime= d1.getTime()+d2.getTime();

你可以在这里看到它,看起来可能是#####

的副本

或者如果您想使用Calender API,那么您也可以使用Calender API执行此操作,然后您可以执行类似

的操作
Calendar c1 = Calendar.getInstance();
    Calendar c2 = Calendar.getInstance();
     Calendar cTotal = Calendar.getInstance(); 
    cTotal.add(c1.get(Calendar.YEAR), c2.get(Calendar.YEAR));
    cTotal.add(c1.get(Calendar.MONTH) + 1)), c2.get(Calendar.MONTH) + 1)); // Months are zero-based!
    cTotal.add(c1.get(Calendar.DATE), c2.get(Calendar.DATE));

答案 3 :(得分:0)

只需将它们与第1 - 2年级的数字相加,然后向后通过它们 还要确保在需要时将数字移到更高的寄存器(即不是
总是在达到10但达到24或60小时/分钟时) 所以我建议你自己编写这个算法。