我建議在Java中編寫一個後端方法來執行此操作,因爲它不是非常簡單,只需幾行JSTL代碼即可完成。
Joda庫對於這些事情很有用。 (在Java 8中,新的java.time。*類可能更可取)。
public class TimeUtils {
private static final PeriodFormatter HH_MM_FORMATTER = new PeriodFormatterBuilder()
.printZeroAlways()
.minimumPrintedDigits(2)
.appendHours()
.appendSeparator(":")
.printZeroAlways()
.minimumPrintedDigits(2)
.appendMinutes()
.toFormatter();
private static final PeriodFormatter DD_HH_MM_FORMATTER = new PeriodFormatterBuilder()
.printZeroAlways()
.minimumPrintedDigits(2)
.appendDays()
.appendSeparator(":")
.printZeroAlways()
.minimumPrintedDigits(2)
.appendHours()
.appendSeparator(":")
.printZeroAlways()
.minimumPrintedDigits(2)
.appendMinutes()
.toFormatter();
public static String addHhMmPeriods(List<String> hhMmPeriods) {
Period total = new Period();
for (String hhMmPeriod : hhMmPeriods) {
total = total.plus(HH_MM_FORMATTER.parsePeriod(hhMmPeriod));
}
return total.normalizedStandard().toString(DD_HH_MM_FORMATTER);
}
}
Java的使用示例:
public static void main(String[] args) throws ParseException {
List<String> hhMmPeriods = new ArrayList<String>();
hhMmPeriods.add("01:11");
hhMmPeriods.add("11:00");
hhMmPeriods.add("00:55");
hhMmPeriods.add("21:47");
System.out.println(TimeUtils.addHhMmPeriods(hhMmPeriods)); // => 01:10:53
}
然後,您可以在一個JSP標籤庫包裝這個方法,或者只使用一個JSP腳本直接調用Java方法。
你不能添加這樣的時間。您應該使用適當的實用程序類來添加時間,並且只能在scriplet中完成,而不能在jstl中完成 – Reddy