首页 > 解决方案 > 查找上个月的第一个和最后一个日期

问题描述

我有一个简单但棘手的代码来编写我以 UTC 时间给出今天的日期字符串的位置。

String s = Instant.now().toString().replaceAll("T.*", "");

我需要找到上个月的第一天和最后一天,并将它们存储在单独的字符串中。关于如何最好地实现它的任何建议?

标签: javadatetimeutc

解决方案


你可以利用TemporalAdjusters.

如果您不必以字符串开头,请不要。LocalDate如果可能,请从 a 开始。

如果您必须以字符串开头,则可以将字符串转换s为 a LocalDateby parse

LocalDate ld = LocalDate.parse(s);

现在我们可以像这样得到月份的开始和结束:

LocalDate startOfMonth = ld.with(TemporalAdjusters.firstDayOfMonth());
LocalDate endOfMonth = ld.with(TemporalAdjusters.lastDayOfMonth());

我建议您在绝对必要之前不要将它们转换为字符串(例如将其显示给用户)。


推荐阅读