-2

在我的应用程序中,我有 1 个编辑文本框,在此用户中将输入一些日期。我想要的是我必须从用户输入的日期中获取第 7 天的日期。我在谷歌中搜索,我找到了 1 个解决方案。

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");                    
Calendar cal = Calendar.getInstance();
cal.add("field", +7);
String currentDateandTime = sdf.format(cal.getTime());

在上面cal.add("field",+7)->字段是int。但我的日期格式是字符串。所以我不能在这里使用..请帮帮我..

4

5 回答 5

1

从 SimpleDateFormat 获取日期并将此日期对象添加到日历中,然后更改为日历。并再次从日历获取新的更新日期。等我贴代码

try {
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date UserEnterDate = sdf.parse("String from your editbox");
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(UserEnterDate);
    int day = calendar.get(Calendar.DAY_OF_MONTH);
    day = day + 7;
    calendar.set(Calendar.DAY_OF_MONTH, day);
    String newDate = calendar.get(Calendar.DAY_OF_MONTH) + "/"
                                + calendar.get(Calendar.MONTH) + "/"
                                + calendar.get(Calendar.YEAR);
} catch (Exception e) {
    // TODO: handle exception
}
于 2012-07-25T09:18:55.607 回答
0

我建议你DatePickerDialog最好使用onClick()EditText

那么您将获得单独的日期月份年份。然后你可以设置你的日期

Date+=7
于 2012-07-25T09:22:08.713 回答
0
As you said thatyou got the date in string format.
So let me start from there
Suppose the date is:
String dt = "2008-01-05";  // Start date
Then do thhis::   
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     Calendar c = Calendar.getInstance();
     try {
        c.setTime(sdf.parse(dt));
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
     c.add(Calendar.DATE, 7);  // number of days to add
     dt = sdf.format(c.getTime());
     System.out.println(""+dt);

Hope.this 肯定会对您有所帮助。享受!!!

于 2012-07-25T09:21:17.093 回答
0

如果您知道格式,则可以从字符串中获取日期对象,根据您的问题,格式为:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");                    
                       Calendar cal = Calendar.getInstance();
                       cal.add("field", +7);
                       String currentDateandTime = sdf.format(cal.getTime());

现在使用此日期格式解析字符串以获取 Date 对象,例如:

Date dt=sdf.parse(txtDt.getText().toString());

现在将此日期设置为日历对象:

Calendar cal=Calendar.getInstance();
cal.setTime(dt);

现在您需要在此日期上添加 7 天,请执行以下操作:

cal.add(Calendar.DAY_OF_MONTH, 7);

现在您已经成功添加了 7 天,现在通过使用以下方法从此日历对象获取日期:

Date dtNew=cal.getTime();

您可以使用以下方法将其转换为可读字符串:

String strNewDt=sdf.format(dtNew);
于 2012-07-25T09:32:30.503 回答
-1

您必须将要修改的字段名称写入“字段”参数,此处#sa 链接到日历参考。日历对象不是字符串,而是您使用的完全不同的生物。使用它的功能来做到这一点。

http://developer.android.com/reference/java/util/Calendar.html

所以你会写

!edit,您实际上必须使用整数设置日历并解析您的字符串以匹配。使用日历中的 set 函数:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");                    
                   Calendar cal = new Calendar;
                   cal.set(int year, int month, int day, int hourOfDay, int minute)
                   cal.add(DATE, 7);
                   String currentDateandTime = sdf.format(cal.getTime());
于 2012-07-25T09:19:32.540 回答