繁体   English   中英

Integer.parseInt重新格式化字符串?

[英]Integer.parseInt reformat string?

我正在为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! 删除格式。 这是错误吗?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM