我在 MySQL 中有一个类型为 timestamp 的列包含“2019-2-16 8:00:00”,我正在使用 Spring Boot 今天获取本地并与之进行比较。我在谷歌上做了很多搜索,但没有任何帮助。这是我的最终代码:
@Override
public List<TaskDTO> getTodayTask(int employeeID) {
Date today = getToday();
List<Task> listOfTask = taskRepository.findByAssigneeIdAndAndStartTime(employeeID, today);
List<TaskDTO> listOfDTO = new ArrayList<>();
for (Task t : listOfTask) {
listOfDTO.add(taskMapper.toDTO(t));
}
return listOfDTO;
}
private Date getToday() {
Calendar calendar = Calendar.getInstance();
Timestamp timestamp = new Timestamp(calendar.getTime().getTime());
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd");
OffsetDateTime odt = OffsetDateTime.parse ( timestamp.toString() , format );
Instant instant = odt.toInstant();
return Date.from(instant);
}
和我的存储库:
@Query("SELECT i FROM Task i WHERE i.assigneeId = ?1 and CAST( i.startTime as date) = ?2")
List<Task> findByAssigneeIdAndAndStartTime(int assigneeID, Date startTime);
我发现 java.util.Date 已被弃用,所以我试图找到另一种方法。
我的实体:
@Entity
我收到一个错误:
java.time.format.DateTimeParseException:无法解析文本“2019-02-16 09:29:32.959”,在索引 10 处找到未解析的文本
我做了很多搜索以找出答案,但仍然没有合适的答案。谢谢你。
智慧大石
温温酱
相关分类