我要做的是创建一个计时器,从给定的时间戳开始计数,基本上告诉我自此时间点以来的时间。
示例时间戳将是此1365679237087
我正在查看Chronometer
,但是如果我将基数设置为时间戳,它会为我提供所有这些ascii字符,而不是从时间开始计算。
示例:
timer = (Chronometer)v.findViewById(R.id.chronometer1);
timer.setBase(1365679237087);
timer.start();
是不是如何使用计时器?
是否有其他解决方案可以获得我想要做的事情
答案 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();