fix(ui): update tasks last run time to include timezone information (#2047)

* fix: update tasks last run time to include timezone information

* fix: use system default timezone instead of assuming UTC
This commit is contained in:
CounterClops
2025-12-31 02:55:27 +08:00
committed by GitHub
parent 8580670b6e
commit 161eb05965
2 changed files with 13 additions and 7 deletions

View File

@@ -7,7 +7,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
import java.time.Instant;
import java.util.List;
@Data
@@ -27,8 +27,8 @@ public class TasksHistoryResponse {
private TaskStatus status;
private Integer progressPercentage;
private String message;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
private LocalDateTime completedAt;
private Instant createdAt;
private Instant updatedAt;
private Instant completedAt;
}
}

View File

@@ -10,7 +10,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
@@ -112,12 +114,16 @@ public class TaskHistoryService {
.status(task.getStatus())
.progressPercentage(task.getProgressPercentage())
.message(task.getMessage())
.createdAt(task.getCreatedAt())
.updatedAt(task.getUpdatedAt())
.completedAt(task.getCompletedAt())
.createdAt(toUtcInstant(task.getCreatedAt()))
.updatedAt(toUtcInstant(task.getUpdatedAt()))
.completedAt(toUtcInstant(task.getCompletedAt()))
.build();
}
private Instant toUtcInstant(LocalDateTime localDateTime) {
return localDateTime != null ? localDateTime.atZone(ZoneId.systemDefault()).toInstant() : null;
}
private TasksHistoryResponse.TaskHistory createMetadataOnlyTaskInfo(TaskType taskType) {
return TasksHistoryResponse.TaskHistory.builder()
.id(null)