java - java-如何将7天添加到默认日期?
问题描述
我在 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
在这里真正使用库。
解决方案
LocalDate 非常适合这项工作:
LocalDate.now().plusDays(7);
你可以得到你的字符串表示
.format(DateTimeFormatter.ISO_DATE);
如果您不能使用 Java 8,那么您有几个选择:
使用 ThreeTen-Backport,它支持 Java 8 JSR-310 API 的大部分功能,通常在
java.time
包中可用。详情请看这里。这个包在 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 有很多问题,请参见此处。仅当您没有其他选择时才使用此选项。
推荐阅读
- java - 在同一浏览器 Selenium (JAVA) 中同时打开多个 URL
- javascript - 如何使用javascript查找块并替换长字符串
- asp.net-mvc - 如何在不使用配置转换的情况下将 Azure webapp 部署到多个环境
- ios - iOS 11:是否可以不显示通知警报(作为横幅),但应该在通知中心添加?
- c# - 不可调用成员 'xyz' 不能像方法一样使用,vb 和 c# 之间的区别
- mysql - 如何解决错误:ERROR 1442 (HY000) Can't update table 'table name' in stored function/trigger?
- redhat - 创建邮箱文件:文件存在
- android - 添加到库后如何在 Android Studio 中使用 JSONLibrary
- python - 仓库库存需求管理
- docker - docker compose vs docker start