Java 从毫秒开始正确格式化时间
我正在安排这样的活动:Java 从毫秒开始正确格式化时间,java,android,time,format,Java,Android,Time,Format,我正在安排这样的活动: seconds = System.currentTimeMillis() / 1000; // Something happens here time = System.currentTimeMillis() / 1000 - seconds; 然后我尝试格式化它: String Time = String.format("%d min, %d sec", TimeUnit.MILLISECONDS.toMinutes(time), TimeUnit.M
seconds = System.currentTimeMillis() / 1000;
// Something happens here
time = System.currentTimeMillis() / 1000 - seconds;
然后我尝试格式化它:
String Time = String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes(time),
TimeUnit.MILLISECONDS.toSeconds(time) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(time)));
结果没有任何意义,分钟是数千,但秒似乎是正常的数字。设置时间的正确方式是什么
long milliseconds = System.currentTimeMillis()%1000;
long seconds = (System.currentTimeMillis()/1000)%60;
long minutes = (System.currentTimeMillis()/(60*1000))%60;
long hours = (System.currentTimeMillis()/(60*60*1000));
省略不需要的部分,并从最高部分中删除模数。您应该使用
System.currentTimeMillis()
给出的精确值,而不进行任何中间计算,或者在秒中转换值(已从毫秒转换为秒)以分钟为单位。还要注意,当您两次调用System.currentTimeMillies()
时,每次的值都会不同。我使用的是System.currentTimeMillies()
的两个值,因为我想通过使用不同的值来计时。我冒昧地编辑了您的问题,以使问题更加清楚。