返回时间修改

parent f465ed23
......@@ -35,10 +35,12 @@ import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.time.temporal.ChronoUnit;
import com.aps.service.MaterialInfoService;
import com.aps.entity.MaterialInfo;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -852,10 +854,7 @@ public class ChromosomeDataService {
LocalDateTime dateTime = (LocalDateTime) value;
// 转换为OffsetDateTime以包含时区信息
OffsetDateTime offsetDateTime = dateTime.atOffset(ZoneOffset.UTC);
// 格式化时间为指定格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
String formattedTime = offsetDateTime.format(formatter);
formattedMap.put(key, formattedTime);
formattedMap.put(key, offsetDateTime);
} else {
formattedMap.put(key, value);
}
......@@ -891,10 +890,7 @@ public class ChromosomeDataService {
LocalDateTime dateTime = (LocalDateTime) value;
// 转换为OffsetDateTime以包含时区信息
OffsetDateTime offsetDateTime = dateTime.atOffset(ZoneOffset.UTC);
// 格式化时间为指定格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
String formattedTime = offsetDateTime.format(formatter);
formattedData.put(field.getName(), formattedTime);
formattedData.put(field.getName(), offsetDateTime);
} else {
formattedData.put(field.getName(), value);
}
......@@ -1842,7 +1838,19 @@ public class ChromosomeDataService {
Field field = getFieldIgnoreCase(item.getClass(), fn);
if (field != null) {
field.setAccessible(true);
key.add(field.get(item));
Object value = field.get(item);
// 处理日期类型字段,只保留年月日部分
if (value instanceof LocalDateTime) {
LocalDateTime dateTime = (LocalDateTime) value;
// 截断时间到天,只保留日期部分
LocalDateTime truncatedDateTime = dateTime.truncatedTo(ChronoUnit.DAYS);
// 格式化时间为只包含日期的格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = truncatedDateTime.format(formatter);
key.add(formattedDate);
} else {
key.add(value);
}
} else {
key.add(null);
}
......@@ -2105,8 +2113,12 @@ public class ChromosomeDataService {
// 尝试解析输入的时间字符串
LocalDateTime inputDateTime = parseDateTimeString(fieldValue);
if (inputDateTime != null) {
// 截断时间到天,只比较日期部分
LocalDateTime truncatedActualDateTime = actualDateTime.truncatedTo(ChronoUnit.DAYS);
LocalDateTime truncatedInputDateTime = inputDateTime.truncatedTo(ChronoUnit.DAYS);
// 时间类型比较
int compareResult = actualDateTime.compareTo(inputDateTime);
int compareResult = truncatedActualDateTime.compareTo(truncatedInputDateTime);
switch (conditionType) {
case Equal:
......@@ -2197,6 +2209,13 @@ public class ChromosomeDataService {
return LocalDateTime.parse(trimmed, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
// 处理只包含日期的格式
if (trimmed.length() == 10 && trimmed.contains("-")) {
// 先解析为LocalDate,然后转换为LocalDateTime
LocalDate localDate = LocalDate.parse(trimmed, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
return localDate.atStartOfDay();
}
// 处理ISO格式
return LocalDateTime.parse(trimmed, DateTimeFormatter.ISO_DATE_TIME);
} catch (Exception e) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment