在java 中添加两个字符串时间
我有两个String时间
1:30:00 1:35:00
有没有一种简单的方法来添加这两次并得到一个新的时间应该是3:05:00
?
我想在客户端这样做,所以如果我可以避免任何日期的liabraries
请记住,您可以将小时/分钟/秒的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; }
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
使用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));
只需将它们与第1 – 2年级的数字相加,然后向后通过它们。
还要确保在需要时将数字移到更高的寄存器(即不是
总是在达到10但达到24或60小时/分钟时)。
所以我建议你自己编写这个算法。