我已经看到几乎类似的问题,但我不会按照我的意愿工作。实际上根本没有。
所以我一直在尝试计算使用TimePicker设置的两个时间戳与两个EditTexts之间的时差。
以下是我无法工作的代码:
public void calcTime() throws Exception{
String startTime = startworkFrom.getText().toString();
String endTime = startworkTo.getText().toString();
DateFormat format = new SimpleDateFormat("hh:mm a");
Date time_1 = format.parse(startTime);
Date time_2 = format.parse(endTime);
long timeDiff = time_2.getTime() - time_1.getTime();
System.out.println("Time difference" + timeDiff);
}
代码中缺少什么?
更新
我发现了这一行的问题:
DateFormat format = new SimpleDateFormat(" hh:mm a");
如果我删除' a '。 价值也很高。如果我将12:00设置为13:00,差异应该是1.但是我在这里获得了非常大的价值。我将使用
答案 0 :(得分:0)
现在唯一的问题是如果我开始深夜工作 早上停止工作我会得到一个负值,但我想 对于另一个主题有一个修复。
这应该这样做
String neg = "-";
long timeDiff;
if(timeDiff.contains(neg)){
timeDiff = time_1.getTime() - time_2.getTime(); }
else{ timeDiff =
time_2.getTime() - time_1.getTime(); }
System.out.println("Time difference" + timeDiff);
答案 1 :(得分:0)
负值的解决方案是使用Math库。 我确实喜欢这个:
String a =""+Math.abs(diff/(60*60*1000)%24);