0

我正在为 Android 构建我的自定义应用程序。我已经实现了一个datepicker对话框,选择时间需要时间。问题是时间选择器没有正确格式化我选择的内容(例如,如果03选择,则datepicker返回3)。

为了解决这个问题,我实现了这个代码:

    TimePickerDialog.OnTimeSetListener timePickerListener = 
            new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int selectedHour,
                int selectedMinute) {

            hour = selectedHour;
            minute = selectedMinute;

            long date = calendarView.getDate();
            DateFormat df = new DateFormat();

            String format = (String) df.format("dd/MM/yyyy", date);

            Date hourdate = new Date();

            hourdate.setHours(hour);
            hourdate.setMinutes(minute);


            SimpleDateFormat hourformatter = new SimpleDateFormat("HH");
            SimpleDateFormat minuteformatter = new SimpleDateFormat("mm");

            String formattedhour = hourformatter.format(hourdate);
            String formattedminute = minuteformatter.format(hourdate);

            Log.v(StorybookContentProvider.TAG_LOG, "formattedhour" + Integer.parseInt(formattedminute) + formattedminute);


            as.setDate(format);
            as.setRangeStart("");
            as.setRangeFinish("");
            as.setHour(Integer.parseInt(formattedhour));
            Log.v(StorybookContentProvider.TAG_LOG, "formattedhoursaving" + Integer.parseInt(formattedminute));
            as.setMinutes(Integer.parseInt(formattedminute));
            as.setTabColor(as.tabHost, true);

问题是:formattedhour以我想要的方式格式化(如果选择03它返回03),但如果我这样做Integer.parseInt(formattedhour),它返回 3!它删除格式。这是一个错误吗?

4

2 回答 2

3

没有错误。它按预期工作。

格式化是为了显示的目的,如果你想要 03,那么使用格式化的。与整数一起使用时,前导零具有不同的含义,这就是将其视为 3 的原因。

于 2013-01-16T22:17:32.860 回答
0

您必须删除整数左侧的零,然后它应该可以正常工作

于 2013-01-17T01:10:45.593 回答