Android - 如何添加日期

时间:2015-10-09 14:01:19

标签: android date

我从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中

有什么想法吗?

2 个答案:

答案 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());