Java 根据 传入的字符串2023-05获取到下个月1号0点和六个月前的1号0点
可以使用Java中的LocalDate和LocalDateTime类来实现。
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String dateStr = "2023-05";
LocalDate date = LocalDate.parse(dateStr + "-01");
LocalDate nextMonth = date.plusMonths(1);
LocalDateTime nextMonthStart = nextMonth.atStartOfDay();
LocalDate sixMonthsAgo = date.minusMonths(6);
LocalDateTime sixMonthsAgoStart = sixMonthsAgo.atStartOfDay();
System.out.println("下个月1号0点:" + nextMonthStart.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
System.out.println("六个月前的1号0点:" + sixMonthsAgoStart.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
}
}
输出结果:
下个月1号0点:2023-06-01T00:00:00
六个月前的1号0点:2022-11-01T00:00:00
这段代码首先使用LocalDate.parse方法将字符串解析为LocalDate对象,然后分别通过plusMonths和minusMonths方法计算出下个月和六个月前的日期。接着使用atStartOfDay方法将日期转换为当天的0点时间。最后使用DateTimeFormatter.ISO_LOCAL_DATE_TIME格式化输出结果
原文地址: https://www.cveoy.top/t/topic/ihEr 著作权归作者所有。请勿转载和采集!