0

我要做的是创建一个计时器,它从给定的时间戳开始计数,基本上告诉我自该时间点以来已经过了多长时间。

一个示例时间戳是这样的1365679237087

我在看,Chronometer但如果我将基数设置为时间戳,它会给我所有这些 ascii 字符,而不是从时间开始计数。

例子:

timer = (Chronometer)v.findViewById(R.id.chronometer1);
timer.setBase(1365679237087);
timer.start(); 

这不是如何使用计时器吗?

是否有另一种解决方案来获得我想做的事情

4

2 回答 2

0

我认为 Arju 的建议是最简单的。

只需在开始时花时间,在结束时获得差异。将此添加到您的时间戳中,您应该会很好。

long start = System.currentTimeMillis();

long difference = System.currentTimeMillis() - start;

long newStamp = 1365679237087 + difference;

我认为您可能会遇到问题,因为您的时间戳使用毫秒 - Chronometer.setBase() 是否支持毫秒时间戳?

编辑:查看Chronometer 源,我看不到毫秒,只有秒。

于 2013-04-12T14:37:58.527 回答
0

我想通了,我需要获取时间之间的差异,将其添加到系统时间并找到我的时区的偏移量,因为时间是 UTC

long system = SystemClock.elapsedRealtime();
long t = incidentStartTime-System.currentTimeMillis();

timer.setBase((system+t)+14400000);
timer.start();
于 2013-04-12T16:34:46.953 回答