我在Java中有一个当前日期,如下所示:
String currentDate = CoreUtil.parseDate(new Date());
这将以2019-03-26
的形式返回今天的日期。
我声明了另一个日期,以便它应自动向当前日期添加7天,如下所示:
String defaultendDate=CoreUtil.parseDate(new Date()); + 7 days //example
因此defaultEnddate应该为2019-04-03
由于我不想使用任何简单的日期格式化程序,我该怎么做?
此外,出于某种原因,我想将日期存储在String
中,其次,我只需要日期,而不是时间。我也没有使用Java 8,所以在这里我不能真正使用LocalDate
库。
答案 0 :(得分:4)
LocalDate非常适合此工作:
LocalDate.now().plusDays(7);
您可以通过以下方式获取字符串表示形式
.format(DateTimeFormatter.ISO_DATE);
如果您无法使用Java 8,则有几种选择:
使用ThreeTen-Backport,它可以反向移植Java 8 JSR-310 API的大多数功能,这些功能通常在java.time
软件包中提供。 See here for details。该软件包可在Maven Central中获得。
您也可以使用Joda Time。奇怪的是,这两个项目的网站布局几乎相同。
如果您否则无法使用ThreeTen-Backport或Joda Time,可以使用以下方法:
Calendar c = GregorianCalendar.getInstance(); c.add(Calendar.DATE, 7); String s = new SimpleDateFormat("yyyy-MM-dd") .format(c.getTime());
警告
旧的日期和时间API see here有很多问题。仅在没有其他选择时才使用此选项。
答案 1 :(得分:1)
使用Calendar
。
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 7);
Date defaultEndDate = cal.getTime();
答案 2 :(得分:1)
类似
LocalDate.now().plusWeeks(1);
也会做原因。
请记住使用Java 8 Date / Time API进行任何带有日期和时间的操作。因为它解决了旧的日期和日历在线程安全,代码设计,时区逻辑等方面的缺点。
更新:
如果您必须使用旧的Date / Time API,则以下代码就足够了:
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, 7);
System.out.println("Adding seven days: " + calendar.getTime());
date = calendar.getTime();
//your code
String currentDate = CoreUtil.parseDate(new Date());
答案 3 :(得分:0)
*
String dt = new SimpleDateFormat("yyyy.MM.dd").format(new Date()); // Start date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, 7); // number of days to add
dt = sdf.format(c.getTime()); // dt is now the new date
System.out.println(dt);
*
Use java.util.Date try this one