在Java中每月和每周将日期设置为特定日期
我在做一个项目,它直观地显示每个月和每个星期的统计数据,我不知道如何优雅地更新每个星期和每个月的日期 例如,我想显示这个月的数据。我必须用Java制作两个日期变量。第一个是2021年5月1日,第二个是今天。我不知道如何优雅地将第一个变量设置为1.x.xxxx,而不首先从当前日期生成一个字符串,然后剪切它,用它做一些数字运算,然后将其合并回1.5.2021 每周统计也是如此,我需要周一和周日的日期,例如今天是2021年5月10日星期一,结束日期是2021年5月17日在Java中每月和每周将日期设置为特定日期,java,Java,我在做一个项目,它直观地显示每个月和每个星期的统计数据,我不知道如何优雅地更新每个星期和每个月的日期 例如,我想显示这个月的数据。我必须用Java制作两个日期变量。第一个是2021年5月1日,第二个是今天。我不知道如何优雅地将第一个变量设置为1.x.xxxx,而不首先从当前日期生成一个字符串,然后剪切它,用它做一些数字运算,然后将其合并回1.5.2021 每周统计也是如此,我需要周一和周日的日期,例如今天是2021年5月10日星期一,结束日期是2021年5月17日 因此,我的想法是将当前日期转换
因此,我的想法是将当前日期转换为字符串格式,将其切片,将其转换为int,计算所需的日期并将其放回字符串(无需返回到datetype,因为它将用于查询)。好吧,您一定要看看
java.time
包中的类
在您的情况下,当前日期可以是LocalDate
实例,例如,具有以下行:
LocalDate.of(2021,5,1);
然后您可以使用withDayOfMonth
方法获取一个新的LocalDate
实例,该实例的月日设置为1:
LocalDate currentDate=LocalDate.now();
LocalDate firstOfMonth=currentDate.withDayOfMonth(1);
是的,我可以在月份部分使用它。我将检查java.time包,看是否可以做类似的事情来获取当前星期的星期一日期。@Kalybor好的,这可以通过一个,它能够根据某种逻辑将一些时间转换为另一个时间。helper类包含一组具有常用调整的方法,例如查找当前日期之前的星期一。类似于currentDate.with(temporalAdjusts.previousorName(DayOfWeek.MONDAY)
的方法可以解决这个问题。如果你的一周总是从周一到周日(你不需要考虑一周可能从周日或一周中的其他某一天开始),那么只需currentDate.with(DayOfWeek.MONDAY)即可
周日也一样。非常感谢,两个回复都是有效的。非常好。