我需要在我的软件中显示特定事件发生的天数,小时数和分钟数。
我得到一个包含最后一个事件值的字符串,并计算事件发生的时间。
...
lastEvent:String = lastEventOcorr(); “16.07.2013 19:20:06”
...
示例:
上次活动发生:3天6小时45分42秒
或
上次发生的事件:5分30秒
...
有一种实用的方法可以进行此计算吗?
我非常感谢所有的帮助。
非常感谢
答案 0 :(得分:1)
Here是有关如何将String
解析为Date
个实例的几种方法。
之后,您需要在已解析的Date
和当前日期(new Date()
)之间calculate the difference。
最后,您可以根据自己的喜好format得出差异。
答案 1 :(得分:1)
我强烈建议您在活动开始时和活动结束时简单地做System.currentTimeMillis()
。
long start = System.currentTimeMillis();
//EVENT
long stop = System.currentTimeMillis();
long difference = stop - start;
然后用一点点数学就可以得到更好的格式。
int seconds=(difference/1000)%60;
int minutes=(difference/(1000*60))%60;
int hours=(difference/(1000*60*60))%24;
答案 2 :(得分:0)
以下是如何计算天数的示例,您可以为此添加小时和分钟。
long MILLIS_IN_DAY = 1000 * 60 * 60 * 24;
String lastEvent = "13.07.2013 10:20:06";
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
Date lastEventDate = sdf.parse(lastEvent);
Date currentDate = new Date();
long timeElapsed = currentDate.getTime() - lastEventDate.getTime();
long diffInDays = timeElapsed / MILLIS_IN_DAY;
System.out.println(diffInDays);