我正在处理一个报告,其中需要计算其中的数据总和,其中一些数据是时间戳,例如:
变量
---------------------- | 活动 | 时间 | ---------------------- | 1 | 11:00:00 | ----------------------- | 2 | 12:00:00 | ----------------------- | 3 | 13:00:00 | ----------------------- | 总计 | 36:00:00 | ----------------------
我试图按照以下方式对时间戳求和:
final DateFormat dt = new SimpleDateFormat("HH:mm:ss");
final Calendar c = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
c.setTimeInMillis(0);
for (final String t : timestampsList) {
c.add(Calendar.MILLISECOND, (int) dt.parse(t).getTime());
}
变量
timestampsList
是一个ArrayList,其中包含所有符合SimpleDateFormat对象使用的模式的String
。给定代码的问题在于,我无法通过使用相同的SimpleDateFormat
生成时间戳的总和,得到的只是未来日期中模式所示小时数。
我也看过Joda Time Duration类,但我不熟悉这个库,也不知道我是否走上了通向正确答案的正确路径。
有人知道如何使用J2SE或Joda Time处理它吗?
timestamps
想象成整数。你不需要初始值来计算总和,只需循环遍历这些值并计算总和即可。@JonathanDrapeau - Philippe Gioseffijava.time
,但不幸的是,只有在Java 8发布时才能使用。 - AJMansfieldHH:mm:ss
。 - Philippe Gioseffi