java根据传的日期(yyyyMMdd HHmmss)向前推X天或者向后推X天
时间: 2024-09-25 17:06:14 浏览: 30
js获取当前时间yyyy-mm-dd-hh-mm-ss
在Java中,你可以使用`LocalDateTime`或`ZonedDateTime`类,配合`plusDays()`或`minusDays()`方法来根据给定的日期(如`yyyyMMdd HHmmss`格式)调整日期,并加上或减去指定的天数。这里假设你已经将字符串转换成了`LocalDateTime`对象。以下是一个例子:
```java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.ZoneId; // 如果你需要考虑时区
public LocalDateTime adjustDate(String inputDateString, int daysToAdjust, boolean isForward) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd HHmmss");
LocalDateTime dateTime = LocalDateTime.parse(inputDateString, formatter);
ZoneId zone = ZoneId.systemDefault(); // 使用系统默认时区
ZonedDateTime zonedDateTime = dateTime.atZone(zone);
if (isForward) {
return zonedDateTime.plusDays(daysToAdjust);
} else {
return zonedDateTime.minusDays(daysToAdjust);
}
}
// 使用示例
String input = "20230501 123456";
int days = 7; // 推迟7天
boolean forward = true; // 向前推
LocalDateTime adjustedDate = adjustDate(input, days, forward);
System.out.println("调整后的日期: " + adjustedDate.format(formatter));
```
这段代码首先解析输入的日期字符串,然后根据指示是向前还是向后调整,并返回相应的日期。
阅读全文