DateTime 지원 및 ISO 8601 날짜 소개

Appwrite 1.0에서는 많은 새로운 기능을 도입하고 있습니다. 그 중에는 가장 자주 요청되는 기능 중 하나인 DateTime 지원이 있습니다. Appwrite Databases는 이제 날짜 및 시간 정보를 저장하기 위한 전용 DateTime 속성을 제공합니다. 이제 모든 Appwrite 엔드포인트는 ISO 8601 사양에 따라 DateTime 형식의 타임스탬프도 반환합니다.

Appwrite에 대해 처음 들었습니까? Appwrite는 핵심 백엔드 요구 사항을 위한 일련의 REST API를 제공하여 최신 애플리케이션 구축과 관련된 모든 복잡성을 추상화하는 서비스로서의 오픈 소스 백엔드입니다. Appwrite는 사용자 인증 및 권한 부여, 실시간 데이터베이스, 클라우드 기능, 웹후크 등을 처리합니다!

일반적인 DateTime 표현



컴퓨팅에서 날짜와 시간을 저장하는 두 가지 주요 표현은 Unix TimeDateTime 입니다.

Epoch 시간 또는 Posix 시간이라고도 하는 Unix 시간은 1970년 1월 1일 UTC 자정에 Unix Epoch 이후의 시간을 저장합니다. Unix Time은 32비트 정수로 표현 및 저장됩니다.

DateTime은 시간을 문자열로 저장합니다. 문자열의 형식은 연도, 월, 날짜, 시, 초 및 밀리초를 나타내는 사람이 읽을 수 있는 형식입니다. 예를 들어 2022-08-17T00:00:00 는 UTC 기준 2022년 8월 17일 자정입니다.

Unix Time 사용의 장점은 정수로 저장된다는 것입니다. 이렇게 하면 Unix Time을 더 쉽게 저장, 쿼리 및 정렬할 수 있습니다. 32비트 정수는 DateTime 문자열보다 적은 공간을 차지하며 비교 및 ​​산술을 수행하는 데 계산 집약적이지 않습니다. Unix Time은 또한 시간대와 독립적이므로 웹에서 시간을 나타내는 데 적합합니다.

Unix Time의 단점은 사람이 쉽게 읽을 수 없고 날짜 범위가 제한되어 있다는 것입니다. Unix Time은 1970년 이전 또는 2038년 이후의 시간을 저장할 수 없으며 이는 매우 제한적입니다.

ISO 8601을 따르는 DateTime은 사람이 쉽게 읽을 수 있으며 JSON의 기본 저장 형식입니다. DateTime의 잠재적인 단점은 시간대가 모호할 수 있고 저장 및 정렬 비용이 다소 비쌀 수 있다는 것입니다.

왜 DateTime인가?



DateTime 속성 지원은 가장 자주 요청되는 기능 중 하나입니다. 사람이 쉽게 읽을 수 있고 더 유연하다는 장점은 많은 Appwrite 개발자에게 높이 평가됩니다.

우리는 또한 Appwrite의 응답 객체에 DateTime을 사용하기로 결정했습니다. 이는 JavaScriptDate() 객체에서 제공하는 기본 형식이기 때문입니다. 이것은 일관성을 유지하는 데 도움이 됩니다.

시간대 모호성을 제거하기 위해 Appwrite는 UTC 시간대의 모든 DateTime을 처리하고 저장합니다. Unix 타임스탬프는 32비트 정수를 통해 Appwrite의 데이터베이스 서비스에서 여전히 지원됩니다.



대부분의 언어는 ISO 8601을 따르는 DateTime과 시스템 라이브러리의 Unix 타임스탬프를 모두 지원합니다. DateTime 문자열을 조작하는 방법을 보여주기 위해 JavaScript를 예로 들겠습니다.

UTC로 현재 시간의 날짜/시간 문자열을 생성하려면:

// Gets current date and time in UTC
var date = new Date(Date.now());

// Print current date and time in UTC
console.log(date.toISOString()) 


마찬가지로 쉽게 UTC DateTime 문자열을 구문 분석할 수 있습니다.

// A DateTime string in UTC, converted to date object
const date = new Date('2022-08-24T20:41:21.909Z');
console.log(date.toISOString());


dateTime 문자열은 UTC를 나타내기 위해 끝에 Z가 있습니다. Javascript가 이 문자열을 구문 분석할 때 자동으로 컴퓨터의 시간대로 변환합니다.

결론



공개 소스 소프트웨어 구축의 가장 큰 이점 중 하나는 커뮤니티에서 받는 실시간 피드백입니다. 더 많은 목소리를 듣고 더 빠르게 반복할 수 있습니다.

이 새로운 기능은 GitHub에 대한 많은 제안과 토론의 결과였습니다. 나는 이 아이디어를 우리에게 몇 번이고 제시한 사람들에게 소리치고 싶었습니다.
  • Discussion #2944
  • Discussion #2909
  • Discussion #2451
  • Issue #3018

  • 귀하의 피드백은 코드 기여만큼 가치가 있으며 독자들이 귀하의 생각을 우리에게 제시할 것을 권장합니다.
  • 📝 Appwrite GitHub Discussions
  • 🚀 Appwrite Github
  • 📜 Appwrite Docs
  • 💬 Discord Community
  • 좋은 웹페이지 즐겨찾기