【问题标题】:time picker ontimeset is wrong时间选择器 ontimeset 错误
【发布时间】:2014-02-06 06:57:11
【问题描述】:

我的应用中有一个日期和时间选择器,我刚刚注意到时间不对。时间选择器显示的当前时间是 i 小时延迟,并且它的上午/下午是错误的,例如当前时间是 2:55 pm 它会显示 1:55 am 这里的问题似乎是代码

更新:日期和时间选择器

@Override
public void onClick(View v) {

    if (v == btnCalendar) {

        // Process to get Current Date
        final Calendar c = Calendar.getInstance();
        mYear = c.get(Calendar.YEAR);
        mMonth = c.get(Calendar.MONTH);
        mDay = c.get(Calendar.DATE)+1;

        // Launch Date Picker Dialog
        DatePickerDialog dpd = new DatePickerDialog(this,
                new DatePickerDialog.OnDateSetListener() {

                    @Override
                    public void onDateSet(DatePicker view, int year,
                            int monthOfYear, int dayOfMonth) {
                        // Display Selected date in textbox
                        txtDate.setText(dayOfMonth + "-"
                                + (monthOfYear + 1) + "-" + year);

                    }
                }, mYear, mMonth, mDay);
        dpd.show();
    }
    if (v == btnTimePicker) {

        // Process to get Current Time
        final Calendar c = Calendar.getInstance();
        mHour = c.get(Calendar.HOUR)+1;
        mMinute = c.get(Calendar.MINUTE);

        // Launch Time Picker Dialog
        TimePickerDialog tpd = new TimePickerDialog(this,
                new TimePickerDialog.OnTimeSetListener() {

                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay,
                            int minute) {
                        // Display Selected time in textbox
                        txtTime.setText(hourOfDay + ":" + minute);
                    }
                }, mHour, mMinute, false);
        tpd.show();
    }
}
}

更新: 我所做的是在mHour = c.get(Calendar.HOUR_OF_DAY)+1; 中添加+1,这种方法可能有什么想法?

unfixed is the AM/PM button is wrong it always show am at start

更新:AM/PM 根本不以 am 开头是错误的,因为现在早上它显示 pm,但在 pm 它显示 am

更新: 日期也有问题。我所做的就是在mDay = c.get(Calendar.DATE)+1; 中添加+1,这种方法可能有什么想法?

【问题讨论】:

    标签: java android time timepicker


    【解决方案1】:

    实际上,这是一个错误。已向谷歌报告。你可以在这里找到它 http://code.google.com/p/android/issues/detail?id=24388http://code.google.com/p/android/issues/detail?id=18982

    【讨论】:

    • 我以为我做错了什么谢谢你为我节省了很多时间。
    【解决方案2】:

    你可以试试这样的:

     <TimePicker
                android:id="@+id/timePicker"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/datePicker1"
                android:layout_centerHorizontal="true"
                android:layout_margin="20dp" />
    
    TimePicker tp = (TimePicker)findViewById(R.id.timePicker);
    
     btn.setOnClickListener(new OnClickListener() 
     {
    
                @Override
                public void onClick(View v) 
                {
                    // TODO Auto-generated method stub
    
                    int Hour = tp.getCurrentHour();
                    int Minute = tp.getCurrentMinute();
    
                        txtTime.setText(String.valueOf(Hour) + ":" + String.valueOf(Minute));
    
                }
            });
    

    【讨论】:

    • 我试过了,但仍然延迟 1 小时,上午/下午和上面的教程都错了..
    • 伙计,它确实有效。它是我项目的源代码。
    • 哥们,你能把整个事情都说清楚吗,也许我把东西弄错了..当我点击时,我仍然得到一个迟到 1 小时的时间,并且上午/下午是错误的
    • 创建一个新的演示项目并将我的代码放入其中。然后比较一下。
    • 刚试了一下,还是有1小时的延迟,就像现在的时间是10:07,但显示的是9:07
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 2017-04-04
    相关资源
    最近更新 更多