날짜의 국제화(i18n)를 위해 라이브러리가 필요하지 않습니다.
읽기 쉽고 이해하기 쉽도록 날짜 문자열을 현지화해야 합니다. 그리고 현지화와 함께 사용자에게 친숙한 형식도 있습니다.
날짜 개체의 현지화 또는 국제화(i18n) 작업을 쉽게 수행할 수 있는 라이브러리가 너무 많습니다. 이러한 라이브러리 중 일부는 다음과 같습니다.
dayjs ( An underdog in this area )
그러나 날짜 개체에 대한 기본 서식 지정 및 지역화를 위해 이러한 라이브러리가 필요하지 않을 수 있습니다.
Date.prototype.toLocaleString
및 사용자 지정 가능한 API를 사용하여 현지화된 출력을 쉽게 얻을 수 있습니다. 다음 예제와 같이 Locale String을 사용하여 사용자가 원하는 읽을 수 있는 날짜를 쉽게 가져옵니다.const date = new Date() // Date from current timestamp
console.log(+date, date);
/* 👆
1581422692394
Tue Feb 11 2020 13:04:52 GMT+0100 (Central European Standard Time)
*/
// For above date, let's see different locales
console.log(
'For USA Users: ', date.toLocaleString('en-US'))
// 👆 For USA based Users: 2/11/2020, 1:04:52 PM
console.log(
'For UK Users: ', date.toLocaleString('en-GB'))
// 👆 For UK based Users: 11/02/2020, 13:04:52
console.log(
'For DE Users: ', date.toLocaleString('de-DE'))
// 👆 For DE based Users: 11.2.2020, 13:04:52
그러나 그것은 그렇지 않습니다. 기본 작업만 보았습니다.
이 함수는 또한 두 번째 매개변수를 JavaScript 객체로 받아들입니다. 이 JS 개체에 일부 특정 키 및 관련 값을 추가하여
toLocaleString
의 결과를 사용자 지정할 수 있습니다. 예를 들어 평일을 제거할 수 있습니다. 월 표시 변경 등두 번째 매개 변수를 사용하여 출력에 대한 추가 사용자 지정의 몇 가지 예를 살펴보겠습니다.
const date = new Date() // Date from current timestamp
console.log(+date, date);
/* 👆
1581422692394
Tue Feb 11 2020 13:04:52 GMT+0100 (Central European Standard Time)
*/
const readableDate = date.toLocaleString('de-DE', {
day: "2-digit",
month: "long",
year: "2-digit"
});
// 👆 "11. Februar 20"
/*
year: "numeric" → "11. Februar 2020"
month: "numeric" → "11.2.20"
month: "2-digit" → "11.02.20"
month: "short" → "11. Feb. 20"
month: "narrow" → "11. F 20"
*/
toLocaleString 함수의 출력을 사용자 지정하기 위한 개체의 서명에는 다음 키가 있을 수 있습니다. 더 많은 키가 있지만 여기서는 일반적인 키만 나열합니다.
dateStyle:
[ 'full', 'long', 'medium', 'short' ]
시간 스타일:
[ 'full', 'long', 'medium', 'short' ]
timeZone: 시간 일부IANA TimeZone Database
월:
[ 'numeric', '2-digit', 'long', 'short', 'narrow' ]
연도:
[ 'numeric', '2-digit' ]
평일:
[ 'long', 'short', 'narrow' ]
일, 시, 분, 초:
[ 'numeric', '2-digit' ]
timeZooneName:
[ 'long', 'short' ]
주의 사항
여기서 주목해야 할 몇 가지 사항:
numeric
및 2-digit
의 두 가지 값이 있습니다.full
, long
, medium
, short
및 narrow
입니다.narrow
를 가질 수 있습니다.여기서 주목해야 할 또 다른 중요한 사항은 다음과 같습니다.
you don’t need to stick to a specific timeZone if you need the desired output.
For.
as the separator, usede-DE
; for/
as the separator, useen-GB
and etc.
You can read more about this function atMDN documentation of toLocaleString.
특정 기능
위 함수처럼
toLocaleStrung
; 날짜 또는 시간에만 정확히 동일한 기능이 있습니다. 따라서 날짜와 시간을 구분하기 위해 일부 문자열 작업을 수행할 필요가 없습니다.날짜
날짜 출력에만 사용할 수 있습니다
date.toLocaleDateString
.const readableDate = date.toLocaleDateString('de-DE', {
day: "2-digit",
month: "long",
year: "2-digit"
});
console.log(readableDate);
// 👆 11. Februar 20
이 기능에 대한 자세한 내용은 MDN documentation of toLocaleDateString에서 확인할 수 있습니다.
시간
시간 문자열만 원하는 경우
date.toLocaleTimeString
를 사용할 수 있습니다.const readableTime = date.toLocaleTimeString('de-DE', {
hour: "2-digit",
minute: "2-digit",
second: "2-digit"
});
console.log(readableTime);
// 👆 13:04:52
이 기능에 대한 자세한 내용은 MDN documentation of toLocaleString에서 확인할 수 있습니다.
결론
날짜는 모든 응용 프로그램에 표시하는 매우 중요한 정보입니다. ToDo 또는 이 블로그처럼 단순한 애플리케이션. 날짜도 복잡한 개체입니다.
그러나 무거운 라이브러리가 항상 필요한 것은 아닙니다. 이 게시물은 무겁지만 매우 유용한 패키지에 뛰어들지 않고 원하는 출력을 얻을 수 있는 간단한 아이디어를 제공합니다.
Date 개체 조작에 무엇을 사용합니까?
댓글 💬 또는 Twitter 및
이 기사가 도움이 되었다면 다른 사람들과 공유해 주세요 🗣
블로그를 구독하면 받은 편지함으로 바로 새 게시물을 받을 수 있습니다.
2020년 2월 18일 https://time2hack.com에 처음 게시되었습니다.
Reference
이 문제에 관하여(날짜의 국제화(i18n)를 위해 라이브러리가 필요하지 않습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/time2hack/you-don-t-need-libraries-for-internationalisation-i18n-of-dates-3h76텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)