我从SQLiteDatabase中检索了一个日期,并通过以下内容将其格式化为我想要的格式;
String steepingDate = (c.getString(3));
SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy");
Date steepingdate = formatter.parse(steepingDate);
我现在想让用户选择将steepingdate中的任何日期增加一段用户可以输入的天数
我知道你可以使用;
Date today = calendar.getTime();
calendar.add(Calendar.DAY_OF_YEAR, 10);
例如,将10天添加到今天的日期
但你怎么做才能使用steepingdate而不是今天的日期
由于
UPDATE;
日历正在按我的意愿工作,但我现在想将新数据保存到数据库中,完整代码如下;
String steepingDate = (c.getString(3));
SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy");
Date steepingdate = formatter.parse(steepingDate);
Integer amountDays = Integer.parseInt(TSExtend.getText().toString());
Calendar ca = Calendar.getInstance();
ca.setTime(steepingdate);
ca.add(Calendar.DAY_OF_YEAR, amountDays);
DateFormat dateFormat = new SimpleDateFormat("dd/MMM/yyyy");
String newDate = dateFormat.format(ca);
我收到了错误;
坏班:班级 java.util.GregorianCalendar中
有什么想法吗?
答案 0 :(得分:11)
要向steepingdate
添加10天,您可以使用:
Calendar calendar = Calendar.getInstance();
calendar.setTime(steepingdate);
calendar.add(Calendar.DAY_OF_YEAR, 10);
通过用户界面提供的数字,您可以使用View.OnClickListener
,当触发onClick时,从EditText
读取值,并使用此值而不是10
答案 1 :(得分:5)
将日历的时间设置为您的日期,然后添加日期
Calendar cal = Calendar.getInstance();
cal.setTime(steepingdate);
cal.add(Calendar.DATE, 10);
更新:
您无法直接格式化日历,首先从日历中获取日期,然后对其进行格式化。
String newDate = dateFormat.format(ca.getTime());