从可用时间字符串中减去特定时间(以分钟为单位)

时间:2018-10-19 10:23:23

标签: android list datetime

我正在开发一个应用程序,其中有一个场景,无论我选择什么时间,下一部分都是从时间字符串中减去1分钟,然后将新时间(以分钟为单位)添加到列表中。 例如,这是我到目前为止的代码:

 viewHolder.mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                Date date = (Date) mtablayoutCourtDetailsAvailability.getTabAt(mtablayoutCourtDetailsAvailability.getSelectedTabPosition()).getTag();
                String key = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH).format(date);
                List<String> stringList = stringListMap.get(key);
                if (isChecked)
                {
                   stringList.add(buttonView.getText().toString());
                }

                else
                {
                    stringList.remove(buttonView.getText().toString());
                }

                stringListMap.put(key, stringList);
            }
        });

现在在此代码中,下面的行指的是用户选择的时间

buttonView.getText().toString()

时隙可以这样使用:“ 09:00 AM-10:00 AM” 因此,每当选中任何广告位时,buttonView中都会有一些广告位文本被添加到列表中。但是,我想从“-”之后的时间中减去1分钟,即如果用户选择“ 09:00 AM-10:00 AM”,那么将添加到stringList中的新时间必须为“ 09:00 AM- 09:59 AM”。 不幸的是,由于我是新手,所以我无法实现这一目标。我可以使用以下代码获得“-”之后的第二个时隙值

String[] namesList = buttonView.getText().toString().split("-");
        String partbefore= namesList[0];
        String partafter= namesList[1];

partafter将包含10:00 AM,我应从中减去1分钟后更改为09:59 AM。我该如何实现?请帮助

1 个答案:

答案 0 :(得分:1)

使用此代码获取。将原始时间设置为您的要求

try {
        String original_time = "2018-11-11 11:02 am", time_required;
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm a");
        SimpleDateFormat localDateFormat = new SimpleDateFormat("HH:mm");
        Date date;
        Calendar cal = Calendar.getInstance();
        date = dateFormat.parse(original_time);
        time_required = localDateFormat.format(date);
        cal.setTime(date);
        cal.add(Calendar.MINUTE, -1);
        time_required = localDateFormat.format(cal.getTime());

    } catch (Exception ex) {
        Toast.makeText(this, ""+ex.getMessage(), Toast.LENGTH_SHORT).show();
    }