我正在尝试用android做一个秒表,包括小时和毫秒。我的时钟总是从7:00:00.000开始,或者以24小时格式19:00:00.000开始。代码如下:
public class MainActivity extends Activity {
TextView tv;
long init,now,time;
@Override
public void onCreate(Bundle savedInstanceState) {
//...
myChronometer.setOnChronometerTickListener(new OnChronometerTickListener() {
public void onChronometerTick(Chronometer cArg) {
SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm:ss.S");
now=System.currentTimeMillis();
time=now-init;
String s2 = timeFormat.format(time);
tv.setText(s2);
}
});
final ImageButton buttonStart = (ImageButton)findViewById(R.id.start);
buttonStart.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
init=System.currentTimeMillis();
myChronometer.setBase(init);
myChronometer.start();
}});
}
}有没有办法从零开始计时,并从那里继续计时?谢谢
发布于 2012-12-15 02:31:05
7小时的差异可能是由于您所在的时区造成的。默认情况下,协调时使用系统的时区,而System.currentTimeMillis()以协调时为单位提供时间。
这应该可以在onChronometerTick()中解决您的问题:
SimpleDateFormat timeFormat = new SimpleDateFormat("H:mm:ss.S");
timeFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
now=System.currentTimeMillis();请注意,我在格式字符串中将hh更改为H。
发布于 2012-12-15 02:00:27
在我看来,计时器是以当前时间为起点的。您可能不应该使用
init=System.currentTimeMillis();如果您想要开始一个0,但是
init=0;希望这能有所帮助
https://stackoverflow.com/questions/13883656
复制相似问题