ADR012: Luxon.toLocaleString과 날짜/시간 프리셋 사용하기
사용자의 로캘에는 날짜를 읽는 고유한 방식이 있습니다.
출처: 문서
본문
맥락
사용자의 로캘에는 날짜를 읽는 고유한 방식이 있습니다. 날짜가 익숙한 형식으로 표시되지 않으면 직관에 반하며, 사용자가 날짜가 무엇인지 더 열심히 생각해야 하고 심지어 날짜를 잘못 해석할 수도 있습니다(예: 05/03/2021은 사용자가 어디에 있느냐에 따라 3월 5일 또는 5월 3일이 될 수 있습니다). 현재 플러그인들은 커스텀 형식과 toFormat 메서드를 사용해 날짜와 시간을 정의하고 있어, 일관되지 않고 낯선 형식으로 이어집니다.
결정
사용자의 위치와 관계없이 UI를 일관되고 익숙하게 유지하기 위해, toLocaleString과 Luxon의 광범위한 날짜 및 시간 프리셋 목록을 사용하기로 결정했습니다.
예시는 다음과 같습니다.
const date = new luxon.DateTime();/* Avoid this: */date.toFormat('yyyy LLL dd'); // 2014 Aug 06date.toFormat('yyyy LLL dd hh:mm'); // 2014 Aug 06 12:01/* Do this instead: */date.toLocaleString(luxon.DateTime.DATE_MED); // US: Oct 14, 1983 | FR: 14 oct. 1983date.toLocaleString(luxon.DateTime.DATETIME_MED); // US: Oct 14, 1983, 9:30 | FR: 14 oct. 1983 9:30
결과
-
UI에서 날짜/시간이 표시되는 현재 위치를 감사하고 이 ADR을 따르도록 갱신해야 할 것입니다.
-
앞으로 진행되는 PR 검토에서 이 ADR을 따르도록 유의해야 할 것이며, 검토 과정에서 이를 자동화하는 lint 규칙을 찾거나 만들어야 할 것입니다.