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