자바스크립트는 다양한 플랫폼에서 광범위하게 적용 가능한 다목적 언어로, 개발자가 동적 웹 기반 및 독립형 데스크톱 애플리케이션을 모두 구축할 수 있도록 지원합니다. 캘린더 프로그램, 채팅 클라이언트, 이벤트 예약 시스템 등 다양한 소프트웨어 솔루션에서 날짜 및 시간 매개변수 조작이 필요합니다.

Luxon 라이브러리는 표준 JavaScript Date 객체에 비해 날짜와 시간 작업을 위한 정교한 솔루션을 제공합니다. 이 라이브러리는 이러한 작업을 처리하기 위한 보다 직관적이고 신뢰할 수 있는 방법을 제시합니다.

Luxon 설치하기

노드 패키지 관리자(npm)를 사용하여 라이브러리를 설치하거나 콘텐츠 전송 네트워크(CDN) 링크를 사용하여 애플리케이션 코드 내에 통합하는 등 다양한 옵션으로 Luxon을 JavaScript 애플리케이션에 통합할 수 있습니다.

Node.js를 사용하는 JavaScript 프로젝트에 Luxon을 통합하려면 터미널에서 다음 명령을 실행해야 합니다:

npm install --save luxon

`require` 함수를 사용하여 Luxon 라이브러리를 JavaScript 코드에 통합합니다.

const { DateTime } = require("luxon");

이 코드는 객체 파괴 기법을 활용하여 Luxon 라이브러리에서 DateTime 클래스를 가져온 다음 해당 클래스를 참조하는 “DateTime”이라는 새 변수를 생성합니다.

이 함수는 날짜 및 시간의 인스턴스를 생성하여 해당 날짜의 표시 형식을 포함한 연산을 실행할 수 있도록 합니다.

콘텐츠 전송 네트워크(CDN) 링크를 활용하여 애플리케이션에 Luxon을 통합할 수 있습니다. 이를 구현하려면 다음 코드 스니펫을 HTML 문서에 추가하세요:

<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/global/luxon.min.js"></script>

이 방법론을 활용하면 페이지 본문에 Luxon 스크립트를 통합하여 HTML 문서 내에서 실행할 수 있습니다.

Luxon의 특징

Luxon은 JavaScript 애플리케이션 내에서 날짜와 시간을 관리하는 데 필수적인 도구가 될 수 있는 다양한 기능을 제공합니다.

포괄적인 날짜 및 시간 조작

Luxon은 날짜와 시간을 생성, 수정 및 검색하기 위한 광범위한 기술을 제공합니다. 이러한 기능에는 간격 통합 또는 제외, 특정 날짜/시간 요소 지정, 상대적 시간 계산 수행과 같은 기능이 포함됩니다.

서식 및 현지화

Luxon 라이브러리는 여러 날짜 및 시간 서식 패턴을 포함하여 다양한 형식으로 날짜와 시간을 표시할 수 있는 다양한 옵션을 제공할 뿐만 아니라 특정 언어의 규칙에 따라 날짜와 시간을 구성하는 기능도 제공합니다.

이 글도 확인해 보세요:  HTTP와 HTTPS: 차이점은 무엇인가요?

시간대 지원

Luxon을 사용하면 다양한 시간대에 걸쳐 날짜와 시간을 원활하게 조작할 수 있습니다. 포괄적인 방법을 활용하여 사용자가 손쉽게 시간대를 설정하고 변환할 수 있으므로 위치에 관계없이 정확한 시간 참조를 보장합니다.

불변 디자인

TheDateTime 클래스는 인스턴스를 생성한 후에는 수정할 수 없는 불변 디자인 패턴을 준수합니다. 이 구현은 날짜/시간 값에 변경할 수 없는 특성을 부여하여 애플리케이션 내에서 이러한 값을 안정적이고 일관되게 처리할 수 있도록 보장합니다.

광범위한 API 문서

Luxon API 문서는 매우 포괄적이므로 접근 가능한 방법, 선택 사항 및 기능을 복잡하지 않게 검토할 수 있습니다.

Luxon의 DateTime 클래스

Luxon 라이브러리 내의 `DateTime` 클래스는 특정 날짜와 시간을 포함합니다. 이 유틸리티 클래스는 날짜와 시간에 대한 광범위한 연산을 수행하기 위해 정적 메서드와 인스턴스 메서드를 모두 제공합니다. 이러한 작업에는 날짜 및 시간 값 생성, 구문 분석, 가져 오기, 변경 및 표시가 포함됩니다.

Luxon에서 `DateTime` 클래스의 인스턴스를 생성하는 메서드는 다음과 같습니다:

theDateTime.local() 기법을 사용하면 새로운 날짜/시간 객체를 생성할 수 있습니다. 이 작업에는 설정하려는 연도, 월, 일, 시, 분, 초, 밀리초 및 날짜 및 시간을 포함하는 7개의 매개 변수를 제공해야 합니다.

앞서 언급한 코드는 동일한 시간 값을 유지하면서 네이티브 자바스크립트 ‘날짜’ 인스턴스를 ‘날짜 시간’ 유형의 객체로 변환하는 `DateTime.fromJSDate()` 함수를 활용합니다.

앞서 언급한 코드 스니펫은 원하는 날짜 시간의 연, 월, 일, 시, 분, 초 및 밀리초 값에 관한 정보가 포함된 객체를 제공하여 DateTime 클래스의 새 인스턴스를 생성하는 데 사용되는 DateTime.fromObject() 함수의 활용을 보여줍니다.

이 코드 스니펫에는 DateTime.now() 메서드가 매개하는 인스턴스화 프로세스를 통해 새로운 Datetime 객체를 생성하는 이 함수의 활용이 설명되어 있습니다. 이 기법은 지역 표준 시간대의 현재 날짜 및 시간을 포함하는 새로 생성된 DateTime 엔티티를 생성합니다.

날짜 시간 개체를 문자열로 포맷하기

Luxon을 활용하면 특정 날짜 및 시간 정보를 전달하는 문자열로 날짜 시간 개체를 표시하는 작업이 간소화됩니다. Luxon을 사용하면 다양한 방식으로 날짜와 시간을 신속하게 포맷할 수 있습니다.

이 글도 확인해 보세요:  웹 개발을 위한 가장 인기 있는 8가지 백엔드 프레임워크

ISO 8601

표준화된 방식으로 날짜와 시간을 표현하는 데 널리 사용되는 규칙은 ISO 8601 형식입니다. DateTime 객체를 해당 ISO 8601 문자열로 변환하려면 toISO() 메서드를 사용할 수 있습니다.

const now = DateTime.local();
console.log(now.toISO()); // 2023-05-21T15:20:07.936+01:00

사람이 읽을 수 있는 형식

Luxon은 지역 언어에 맞게 개인화할 수 있는 인간 친화적인 형식을 사용할 수 있는 옵션을 제공합니다. toLocaleString()` 메서드를 활용하면 `DateTime` 객체를 원하는 언어의 이해 가능한 문자열로 변환할 수 있습니다.

const now = DateTime.local();
console.log(now.toLocaleString()); // 5/21/2023

토큰 기반 서식

토큰 기반 서식을 활용하면 토큰이라고 하는 자리 표시자 기호를 사용하여 날짜와 시간을 맞춤형 문자열로 변환할 수 있습니다. 날짜/시간 객체에 이 기법을 적용하려면 toFormat() 메서드를 사용합니다.

const now = DateTime.local();
console.log(now.toFormat("yyyy-MM-dd HH:mm:ss")); //2023-05-21 15:16:57

앞서 설명한 그림은 예상 출력 구성으로 사용되는 서식 패턴, 특히 “yyyy-MM-dd HH:mm:ss”의 활용을 보여줍니다. 이 패턴은 자리 표시자로 둘러싸인 여러 매개 변수(예: 연도 “yyyy”, 월 “MM”, 일 “dd”, 시 “HH”, 분 “mm”, 초 “ss”)로 구성되며, 각 매개 변수는 DateTIme 개체 값의 각 구성 요소에 해당합니다.

Luxon은 포괄적인 기호 모음을 활용하여 다양한 날짜 및 시간 표현을 가능하게 합니다.

Luxon에서 날짜 및 시간 구문 분석 및 유효성 검사

Luxon 라이브러리는 날짜 및 시간 데이터 처리 및 검증을 위한 고급 기술을 제공하며, 사용자 입력을 확인하거나 날짜 및 시간의 문자열 표현식을 DateTime 개체로 변환하는 등의 작업이 필요한 애플리케이션에서 활용할 수 있습니다.

fromFormat() 메서드

`fromFormat()` 함수는 지정된 형식에 따라 포맷된 날짜와 시간의 문자열 표현을 `DateTime` 클래스의 인스턴스로 변환하는 데 활용됩니다. 이 작업에는 형식이 지정된 상태의 입력 문자열과 해당 형식을 생성하는 데 사용된 형식을 나타내는 문자열이라는 두 개의 매개 변수가 포함됩니다.

DateTime.fromFormat("May 25 2023", "LLLL dd yyyy")

isValid 메서드로 날짜 및 시간 유효성 검사

isValid 메서드로 확인된 Datetime 객체의 유효성 검사는 해당 객체가 실제 날짜 및 시간을 구현하는지 여부를 결정합니다. 이 평가 결과가 양수이면 개체가 진짜인 것으로 확인되었음을 나타내며, “true”가 반환됩니다. 반대로, 검증 프로세스에서 객체에 신뢰성이 부족하여 유효하지 않은 것으로 간주되는 것으로 결론이 나면 isValid 메서드의 응답으로 “false”가 반환됩니다.

이 글도 확인해 보세요:  JES를 활용한 흥미로운 사운드 처리 기법 3가지

이 연구는 인간 행동과 사회적 상호 작용의 다양한 측면을 조사합니다.

const invalidDate = DateTime.fromObject({ year: 2022, month: 2, day: 29 });
console.log(invalidDate.isValid); // false

const validDate = DateTime.fromObject({ year: 2022, month: 2, day: 28 });
console.log(validDate.isValid); // true

initialDateTime 인스턴스는 잘못된 값인 2022년 2월 29일로 지정되어 무효를 나타내는 반면, subsequentDateTime 인스턴스는 진위를 검증하는 2022년 2월 28일로 지정되어 적법성을 보여줍니다.

Luxon은 날짜 및 시간 정보를 정확하게 처리하고 해당 데이터의 신뢰할 수 있는 표현을 제공하는 구문 분석 및 유효성 검사 기능을 통합합니다.

Luxon의 대안

Luxon을 사용하여 날짜 및 시간 인스턴스를 생성, 형식화 및 유효성을 검사하는 기술에 대해 설명했습니다. 이 지침은 날짜와 시간을 세심하게 처리해야 하는 웹 애플리케이션을 구축하는 데 유용할 것입니다.

웹 애플리케이션에서 날짜 및 시간 조작을 위해 Day.js 및 Date.fns와 같은 다른 자바스크립트 라이브러리를 사용할 수 있으며, 이 라이브러리는 장점과 단점을 모두 제공합니다. 이 중 어떤 것을 선택할지는 프로젝트의 특정 요구 사항에 따라 달라집니다.

By 김민수

안드로이드, 서버 개발을 시작으로 여러 분야를 넘나들고 있는 풀스택(Full-stack) 개발자입니다. 오픈소스 기술과 혁신에 큰 관심을 가지고 있고, 보다 많은 사람이 기술을 통해 꿈꾸던 일을 실현하도록 돕기를 희망하고 있습니다.