我试图让我的应用程序在用户的命令上打印其正常运行时间,但是它在执行时会产生以下内容:
Current up-time: 01:00:07:34
而实际正常运行时间是00:00:07:34
. 我花了一段时间来解决与此类似的问题,大多数人都说将时区设置为 GMT 或使用外部时间 API。当我试图将依赖关系保持在最低限度时,我试图避免使用外部 API 只是为了获得正常运行时间。我将时区设置为 GMT,但它所做的只是修复小时(它曾经显示01:01:07:34
为正常运行时间)。
我的代码是这样的:
case "uptime":
long uptime = System.currentTimeMillis()-MainClass.getStartTime();
DateFormat formatter = new SimpleDateFormat("DD:HH:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.printf("Current up-time: %s\n", formatter.format(new Date(uptime)));
return true;
任何人都知道我怎样才能得到这个来产生一个理智的输出?