728x90
반응형
todo앱 만들면서 캘린더에 마크 표시가 안되어 해결방법을 적어보려고 한다.
1. 문제 파악하기
위의 사진은 마크 표시가 안 된 캘린더를 표시한 것이다. 원래 todo앱에 일정이 등록되면 해당 날짜에 마크 표시와 슬라이딩업패널에 일정보기 아래에 해당 날짜의 일정이 보여야 한다. 그러나 둘다 표시가 안 되었다.
그래서 다른 날짜를 클릭했을 때도 그런가 확인했다. 확인해보니 앱을 제일 처음 구동했을 때만 안되는 것이었다. 그렇다는 것은 해당 기능이 된다는 것은 변수를 잘못 선언했다는 말이었다.
2. 디버그 콘솔에 출력하기
디버그 콘솔에 앱 구동하고 바로 일정을 등록하면 어떻게 출력되는지 확인하고자 하였다.
그리고 나서 다른 날짜를 클릭하고 일정을 등록시 날짜가 어떻게 출력되는지 확인하였다.
→ 여기서 둘다 날짜가 표시될 때 잘 담겨서 출력이 된다는 것이었다. 그렇지만 위와 아래의 사진의 차이점은 날짜 형식을 출력할 때 아래는 Z라는 것이 날짜 형식에 출력된다는 것이었다.
이는 영국시간을 의미한다. 아래의 사진은 utc형식으로 출력되는 것이었다. utc형식으로 출력되면 마크 표시가 되는 것이다.
한국 시간은 UTC + 9 UTC 시간은 한국 시간 - 9
3. 한국시간을 utc시간형식으로 변환
내가 작성한 코드를 확인하고자 하였다. 그래서 보니
DateTime selectedDay = DateTime(
DateTime.now().year,
DateTime.now().month,
DateTime.now().day,
);
이렇게 되어 있어, 변환하는 형식을 찾아보니 쉬웠다.
DateTime selectedDay = DateTime.utc(
DateTime.now().year,
DateTime.now().month,
DateTime.now().day,
);
이렇게 변환시켜주었다. 그리고 잘 담아오는지 확인하였다.
4. 결과물
이렇게 잘 받아와졌다.
728x90
반응형