首页 > 解决方案 > 我的当前时间和我的 TimePicker 时间相差约 40.000 秒(昨天是 +46.803,今天是 -39.598 秒)

问题描述

如果它的唯一代码没有详细信息,我无法上传它,这就是我有所有评论的原因

public class Wecker extends AppCompatActivity {
    TextView Alarm1;
    long AlarmTime,currentTime;
    int A1Stunde,A1Minute,year,month,day;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wecker);


        //timePicker for AlarmTime


        Alarm1 = findViewById(R.id.Alarm1);
        Alarm1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TimePickerDialog timePickerDialog = new TimePickerDialog(
                        Wecker.this,
                        new TimePickerDialog.OnTimeSetListener() {
                            @Override
                            public void onTimeSet(TimePicker view, int Stunde, int Minute) {
                                A1Stunde = Stunde;
                                A1Minute = Minute;

                                Calendar calendar = Calendar.getInstance();
                                calendar.set(0,0,0,A1Stunde,A1Minute);

                                Alarm1.setText(DateFormat.format("hh:mm aa",calendar));

                            }
                        },24,0,true

                );
                //converts the timePickerDialog time into Millis

                timePickerDialog.updateTime(A1Stunde,A1Minute);
                timePickerDialog.show();
                Calendar c = Calendar.getInstance();
                year = c.get(Calendar.YEAR);
                month = c.get(Calendar.MONTH);
                day = c.get(Calendar.DAY_OF_MONTH);
                c.set(Calendar.HOUR, A1Stunde);
                c.set(Calendar.MINUTE, A1Minute);
                c.set(Calendar.SECOND, 0);
                c.set(Calendar.MILLISECOND, 0);
                AlarmTime = (c.getTimeInMillis() / 1000);
            }
        });

        //Timer to compare the currentTime with the AlarmTime


        Timer t = new Timer();
        t.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                //currenTime form calendar


                currentTime = Calendar.getInstance().getTimeInMillis() / 1000;

                if (currentTime==AlarmTime) {
                    Log.e(TAG, "works");

                }else{

                    Log.e(TAG, String.valueOf(currentTime));
                    Log.e(TAG, String.valueOf(AlarmTime));
                }}
        },0,1000);

今天,AlarmTime 的值关闭了 -39.598 秒,昨天是 +46.803 我不知道为什么会发生这种情况或如何解决它。是因为 TimeZones 还是因为 AM / PM 时间,如果是这样,它如何工作?

标签: javaandroidandroid-studio

解决方案


推荐阅读