시간데이터 비교하기

이민우·2023년 8월 28일
0

오늘은 할래? 프로젝트를 구현중 필요한 시간데이터 비교에대해서 적어보려한다.

프로젝트에서 채팅방에 저장된 채팅데이터를 불러올 때 시간에 따라 채팅 내용을 불러오려고 한다.

시간의 기준은 사용자가 채팅방에 초대된 시간을 기준으로 초대된 시간의 후의 채팅 데이터를 불러오려고한다.
그 이유는 초대 되기전의 다른사람들이 나눈 대화내용은 보여지지 않는게 정상적이라고 생각해서 이다.
그에 생각한 방법이 사용자가 채팅방에 초대된 시간 데이터와 채팅방에 저장된 채팅 데이터의 시간을 비교해 채팅 데이터를 가져오는 방법을 선택했다.

시간데이터 비교 지식

.isAfter
해당 자바 API는 주어진 날짜가 파라미터로 전달받은 날짜보다 클 경우 true를 반환한다.
즉 주어진 날짜 보다 파라미터로 전달받은 데이터가 더 과거시간이라는 것이다.

.isBefor
해당 자바 API는 주어진 날짜가 파라미터로 전달받은 날짜보다 작을 경우 true를 반환한다.
즉 주어진 날짜 보다 파라미터로 전달받은 데이터가 더 미래시간이라는 것이다.

.isEqual
해당 자바 API는 주어진 날짜가 파라미터로 전달받은 날짜와 같을 경우 true를 반환한다.
즉 시간이 같다는 것을 의미한다.

위와같은 자바 API를 이용해 사용자가 채팅방에 초대된 시간과 채팅이 저장된 시간을 비교해 초대된 시간보다 미래의 시간 데이터를 가진 채팅들을 조회해 보여준다면 초대된 차이만큼 채팅 조회를 제한할 수 있다.

채팅방 채팅 조회 Service api

먼저 채팅방 id 와 로그인된 유저의 id 데이터를 가지고 사용자가 채팅방에 초대된 시간을 조회한다.

checTime 변수에 사용자가 초대된 시간 데이터가 저장된다.

다음으로 해당 유저가 속한 채팅방의 채팅 데이터를 불러오고 향상된 for문과 isBefor 을 사용해 초대된 시간 보다 미래시간을 가진 데이터만을 조회하는 조건을 사용해 채팅방에 반환될 리스트에 저장한다.

마지막으로 채팅방에 반환될 리스트를 Dto 형태로 반환해주면 해당 유저가 초대된 이후의 채팅 데이터만이 보이게 된다.

profile
개린이

0개의 댓글

관련 채용 정보