创建一个从时间戳开始计时的计时器

时间:2013-04-12 14:21:08

标签: android timer chronometer

我要做的是创建一个计时器,从给定的时间戳开始计数,基本上告诉我自此时间点以来的时间。

示例时间戳将是此1365679237087

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

示例:

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

是不是如何使用计时器?

是否有其他解决方案可以获得我想要做的事情

2 个答案:

答案 0 :(得分:0)

我认为Arju所说的最简单。

在开始时花点时间,最后得到差异。将此添加到您的时间戳,你应该是好的。

long start = System.currentTimeMillis();

long difference = System.currentTimeMillis() - start;

long newStamp = 1365679237087 + difference;

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

编辑:浏览Chronometer source我看不到毫秒的引用,只有几秒钟。

答案 1 :(得分:0)

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

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

timer.setBase((system+t)+14400000);
timer.start();