我尝试使用Android Chronometer做一个简单的计时器。但是计时器从18:00:00开始,而不是00:00:00。谁能解释为什么会发生这种情况呢?
以下是代码:
final Chronometer mChronometer = (Chronometer) retView.findViewById(R.id.chronometer);
mChronometer.start();
mChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chrono) {
long t = SystemClock.elapsedRealtime() - chrono.getBase();
chrono.setText(DateFormat.format("kk:mm:ss", t));
}
});
这里是xml:
<Chronometer
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:id="@+id/chronometer"
android:textSize="28sp"/>
编辑:
我在我的时间里加了21600000(6小时,毫秒),它平衡了时间。但是这种感觉很麻烦,可能导致错误。如果有人有更好的方法来处理请帮助
long t = SystemClock.elapsedRealtime() - chrono.getBase() + 21600000;
答案 0 :(得分:1)
我认为您可以使用SimpleTimeZone.getDefault().getRawOffset()
来获取与此时区标准时间的UTC相差的毫秒数。
了解更多信息请查看: http://developer.android.com/reference/java/util/TimeZone.html#getRawOffset()