如何从日历中只获取没有时间的日期



我使用以下代码将一天添加到日历中。但是,我想在字符串中只检索日期而不检索时间。这有可能吗?

Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DATE,1);
String dateandtime=calendar.getTime();

更新:谢谢你的建议。对于像我这样的java新手来说,建议的类似帖子太复杂了。这个问题的答案很简单。这就是为什么我建议不应该结束这个问题。

这可能有助于

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String formatted = format1.format(cal.getTime());
System.out.println(formatted);
// Output "2020-10-19"

java.time

对于一个简单、可靠和最新的解决方案,我建议您使用现代java日期和时间API java.time来进行日期工作。

LocalDate today = LocalDate.now(ZoneId.of("Europe/Athens"));
LocalDate tomorrow = today.plusDays(1);
System.out.println(tomorrow);

当我刚刚(10月19日(运行这个片段时,输出是:

2020-10-20

LocalDate是一个没有时间(也没有时区(的日期,所以在我看来,这正是你所需要的。

对于字符串,可以使用tomorrow.toString()DateTimeFormatter。搜索如何实现后者,在许多地方都有描述。

链接:Oracle教程:日期时间解释如何使用java.Time.

最新更新