Java 时间集上的时间选择器错误

Java 时间集上的时间选择器错误,java,android,time,timepicker,Java,Android,Time,Timepicker,我的应用程序中有一个日期和时间选择器,我刚刚注意到时间错了。时间选择器显示的当前时间为i小时延迟,其am/pm错误,例如,当前时间为2:55 pm它将显示1:55 am这里的问题似乎是代码 更新:日期和时间选择器 @Override public void onClick(View v) { if (v == btnCalendar) { // Process to get Current Date final Calendar c = Calenda

我的应用程序中有一个日期和时间选择器,我刚刚注意到时间错了。时间选择器显示的当前时间为i小时延迟,其am/pm错误,例如,当前时间为
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();
    }
}
}
更新: 我所做的是把+1放在
mHour=c.get(Calendar.HOUR\u OF_DAY)+1这个方法可能会有问题,有什么想法吗

未修复的是AM/PM按钮错误,它总是在启动时显示AM

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

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

实际上,这是一个bug。谷歌已经收到了报告。你可以在这里找到它 及

您可以尝试以下方法:

 <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));

            }
        });

TimePicker tp=(TimePicker)findviewbyd(R.id.TimePicker);
btn.setOnClickListener(新的OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
//TODO自动生成的方法存根
int Hour=tp.getCurrentHour();
int Minute=tp.getCurrentMinute();
setText(String.valueOf(Hour)+:“+String.valueOf(Minute));
}
});

我试过了,但仍然延迟了1个小时,而且am/pm和上面的教程一样都是错误的。伙计,它肯定能工作。这是我项目的源代码。伙计,你能把整个东西都放进去吗?也许我放错了什么东西。当我点击时,我仍然得到一个迟到1小时的时间,而且AM/PM是错误的。只需制作一个新的演示项目,并把我的代码放进去。然后比较一下。刚刚试过,但仍然有1个小时的延迟,就像现在是10:07,但显示的是9:07。我认为我做错了什么。谢谢你为我节省了很多时间。