我想记录System.currentTimeMillis()
用户在我的程序中开始执行操作所用的时间。当他完成后,我会减去当前System.currentTimeMillis()
从start
变量,我想向他们展示使用人类可读的格式经过诸如“XX小时XX分钟,XX秒”,甚至是“XX分钟,XX秒”的时间,因为它的不太可能花一个小时。
最好的方法是什么?
使用java.util.concurrent.TimeUnit
类:
String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes(millis),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);
注意:TimeUnit
是Java 1.5规范的一部分,但从toMinutes
Java 1.6开始添加。
要为值0-9添加前导零,只需执行以下操作:
String.format("%02d min, %02d sec",
TimeUnit.MILLISECONDS.toMinutes(millis),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);
如果不支持TimeUnit或toMinutes(例如,在API版本9之前的Android上),请使用以下公式:
int seconds = (int) (milliseconds / 1000) % 60 ;
int minutes = (int) ((milliseconds / (1000*60)) % 60);
int hours = (int) ((milliseconds / (1000*60*60)) % 24);
//etc...
问题内容: 我正在编写一个赛车应用程序,想要将大量毫秒转换为minutes:seconds.milliseconds(例如)。目前,我只是通过数学()进行运算,然后求余数并进一步除法,依此类推,但是我发现它时不时关闭1毫秒。我知道这听起来似乎没什么大不了的,但是我试图找到和的平均值,然后返回,这意味着它输入不正确,而应用程序的其余部分无法处理。 有没有一种方法使用或格式化毫秒到MM或类似的东西:s
问题内容: 我在Microsoft SQL Server 2008R2中有一个bigint字段,其中充满了刻度线(单个刻度线代表一百纳秒或一千万分之一秒。在一毫秒内有10,000个刻度。) http://msdn.microsoft.com/zh- CN/library/system.datetime.ticks.aspx 我需要将所有记录的总和转换为Days:Hours:Minutes:Seco
但这一个返回的是基于本地时间的毫秒。也不考虑ZoneID。 假设。如果我将其转换为具有区域id(“Asia/Kolkata”)的,那么我将得到()。然后以UTC转换为EpochMilli(1554854400000)=()。
问题内容: 我需要将毫秒值85605304.3587转换为类似0d 18h 21m的值。不知道如何启动它,是否像C#中的SQL中有类似TimeSpan的东西? 问题答案: 您可以显式进行计算。我认为是这样: 注意:某些数据库使用代替。
这个问题我已经研究了一段时间,但我只能得到秒数,下面是给我的说明:编写一个程序,从代表纳秒数的标准输入中读取一个非负整数。然后,程序编写一行输出,给出等效的天、小时、分钟、秒、毫秒、微秒和纳秒的数量。例如,输入为123456789123456789。则输出为:123456789123456789纳秒等于1428天、21小时、33分钟、9秒、123毫秒、456微秒和789纳秒。这是我写的: }
我是Momentjs的新手。我试着用它把毫秒转换成小时和分钟。下面,x是毫秒 有人能帮忙吗?