Android DateFormat总是在18:00:00到达00:00:00

时间:2015-03-10 16:38:55

标签: android datetime chronometer

我尝试使用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;

1 个答案:

答案 0 :(得分:1)

我认为您可以使用SimpleTimeZone.getDefault().getRawOffset()来获取与此时区标准时间的UTC相差的毫秒数。

了解更多信息请查看: http://developer.android.com/reference/java/util/TimeZone.html#getRawOffset()