Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从可用时间字符串中减去以分钟为单位的特定时间_Android_List_Datetime - Fatal编程技术网

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

Android 从可用时间字符串中减去以分钟为单位的特定时间,android,list,datetime,Android,List,Datetime,我正在开发一个应用程序,其中有一个场景,无论我选择什么时间,下一部分是从时间字符串中减去1分钟,然后将新的时间(以分钟为单位)添加到列表中。 例如,这是我至今的代码: viewHolder.mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(Compoun

我正在开发一个应用程序,其中有一个场景,无论我选择什么时间,下一部分是从时间字符串中减去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);
            }
        });
时间段如下:“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,在减去1分钟后,我应更改为上午9:59。我怎样才能做到这一点?请帮助

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

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

尝试获取日期值,将其转换为毫秒,并将59分钟(以毫秒为单位)加回。(1000*60*59). 然后使用SimpleDataFormatHankYou转换新的毫秒值,以响应@Janwilx72,但我已经有可用的时间字符串,我想从该时间字符串中减去1分钟。有可能吗?可以试试这样的方法:String finalKey=key+“-”+key.substring(key.length()-2)+“59”@是的,这是可能的。我正在发布答案。检查它是一个撇开考虑长期抛弃和臭名昭著的麻烦<代码> SimpleDateFormat < /C>和日期<代码>,并添加到Android项目中,以便使用<代码> java.时间>代码>,java java日期和时间API。和我一起工作真是太好了。我用几乎相同的方法解决了这个问题。不过,还是要谢谢你,投你一票。
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();
    }