Rea*_*cen 44 java math time milliseconds
我做了一些研究,但仍然找不到如何得到这些日子......这就是我得到的:
int seconds = (int) (milliseconds / 1000) % 60 ;
int minutes = (int) ((milliseconds / (1000*60)) % 60);
int hours = (int) ((milliseconds / (1000*60*60)) % 24);
int days = ????? ;
Run Code Online (Sandbox Code Playgroud)
请帮忙,我吮吸数学,谢谢.
wha*_*ley 120
对于像这样的简单情况,应该使用TimeUnit.与明确地进行所有算术计算相比,TimeUnit的使用对于所表示的内容更加明确,并且更易于读取和写入.例如,要计算从毫秒开始的天数,以下语句将起作用:
long days = TimeUnit.MILLISECONDS.toDays(milliseconds);
Run Code Online (Sandbox Code Playgroud)
对于更高级的情况,需要在使用时间的上下文中表示更细粒度的持续时间,应使用全包和现代日期/时间API.对于JDK8 +,现在包含了java.time(这里是教程和javadoc).对于早期版本的Java,joda-time是一个可靠的替代方案.
Mar*_*ers 96
如果您没有大于天的另一个时间间隔:
int days = (int) (milliseconds / (1000*60*60*24));
Run Code Online (Sandbox Code Playgroud)
如果你也有几周:
int days = (int) ((milliseconds / (1000*60*60*24)) % 7);
int weeks = (int) (milliseconds / (1000*60*60*24*7));
Run Code Online (Sandbox Code Playgroud)
如果可能的话,最好避免使用数月和数年,因为它们没有明确定义的固定长度.严格来说,日子也不是:夏令时意味着日子的长度可以不是24小时.
在java中寻找TIMEUnit
为了导入使用,java.util.concurrent.TimeUnit
long millisec=System.currentTimeMillis();
long seconds=TimeUnit.MILLISECONDS.toSeconds(millisec);
long minutes=TimeUnit.MILLISECONDS.toMinutes(millisec);
long hours=TimeUnit.MILLISECONDS.toMinutes(millisec);
long days=TimeUnit.MILLISECONDS.toDays(millisec);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
104517 次 |
最近记录: |