-
[3주 프로젝트 중 회고] Date 오차 수정기🖊생활/🖋회고 2022. 6. 23. 21:47
이번 미션 요구사항 중에 날짜를 체크해야하는 로직이 있었다.
YYYY-MM-DD형식으로 처리를 해야하는 건데
좀 멋있게해보려고 MaterialDatePicker를 적용해서 버튼을 누르면 달력이 뜨게 구현을 하려했다.
🥺문제 발생
datePicker는 선택한 날짜가 Long타입으로 반화이 된다.
그래서 바로 검색 ㄱㄱ검색결과 Date로 바꿔서 SimpleDateFormat을 쓰라고 했다.
(근데 SimpleDateFormat에서도 Long변환을 지원한다)그런데 둘다 변환시 day가 145, 175등 이상한 숫자로 표기되는 문제를 겪게 되었다.
아무리 검색해도 답이 없던 그 순간
하나의 블로그글을 발견! (감사합니다...ㅠㅠ)
https://codediver.tistory.com/130
뭔가 오차때문일 거라고 예상은 했으나 답을 못찾고 있었는데 위로 블로그에서 추천해주신
date4j를 사용해보기로했다.그런데 date4j에 대한 정보가 너무 없음 ㅡㅡ
http://www.darkkaiser.com/2010/05/14/javas-date-classes-must-die/이 블로그에 정리가 잘 되어있었고 date4j 자체도 그리 복잡하지 않아서 잘 사용할 수 있었다!
val datePicker = MaterialDatePicker.Builder.datePicker() .setTitleText("Select date") .build() binding.btnCalendar.setOnClickListener { datePicker.show(childFragmentManager, "calendar") datePicker.addOnPositiveButtonClickListener { val select = requireNotNull(datePicker.selection) val dateTime = DateTime.forInstant(select, TimeZone.getTimeZone("Asia/Seoul")) val dateFormat = dateTime.format("YYYY-MM-DD") viewModel.setDate(dateFormat) Log.d("TAG", "date $dateFormat") }dataPicker 적용 성공!!
'🖊생활 > 🖋회고' 카테고리의 다른 글
220921 TIL - 스쿼드 맵 설계 고민 알고리즘 2문제 (2) 2022.09.30 안드로이드 신입을 꿈꾸는 국비 출신 비전공의 코드스쿼드 6개월 간 대장정...회고 (0) 2022.07.18 [주간 회고] 3주 프로젝트 시작 (0) 2022.05.28 [주간 회고] 방학이 끝났다... (0) 2022.05.09 [오회] 220326 ~ 220412 회고 (0) 2022.04.12