태그 보관물: date-format

date-format

프로그래밍에서 기본 날짜 형식이 YYYYMMDD이고 다른 것이 아닌 기술적 이유가 있습니까? 궁금합니다. 예를 들어 2000 년은

왜 그런 엔지니어링 이유가 있습니까? RDBMS의 경우, “YEAR”가 “MONTH”보다 더 구체적이기 때문에 성능과 관련이 있다는 것이 궁금합니다. 예를 들어 2000 년은 1 년이지만 매년 “January”는 연도별로 무언가를 필터링 / 정렬하기가 더 쉽고 빠르기 때문에 연도가 가장 먼저 나옵니다.

그러나 그것이 정말로 의미가 있는지 모르겠습니다 … 전혀 이유가 있습니까?



답변

이런 방식으로 날짜는 기본 정렬 규칙을 사용하여 문자열로 쉽게 정렬 할 수 있습니다 (예 : 사전 정렬 ).

이것은 또한 월과 일이 두 자리 숫자로 지정되는 이유입니다 (필요한 경우 앞에 0을 추가 함).

실제로 그것은 ISO 8601에 의해 정의 된 날짜 형식 중 하나입니다 . 이 표준은 날짜 및 시간 형식도 정의하며 2015-03-27T15:26:40Z문자열로도 정렬 할 수 있습니다.

그러나 YYYYMMDD는 문자열을 정수 로 쉽게 구문 분석하고 정수에서 기본 순서를 계속 사용할 수 있도록하는 추가 이점이 있습니다 .


답변

아직 언급되지 않았지만 YYYY 내부 의 주문을 빠르게 처리합니다 . 그것은 이미 수천 년, 수십 년, 수십 년입니다. 즉, YYYY는 이미 가장 긴 기간에서 가장 짧은 기간으로 주문됩니다. MM과 DD도 마찬가지입니다. 이것이 바로 숫자 시스템의 작동 방식입니다.

따라서 필드 사이 의 순서 필드 내의 순서와 일치시키기 위해 유일한 옵션은 YYYYMMDD입니다.

zahbaz와 Arseni Mourzenko가 지적했듯이 YYYYMMDD 형식은 쉽게 정렬됩니다. 이는 운이 좋은 우연의 일치가 아니며, 가장 긴 기간 동안 필드를 먼저 배치하고 길이를 고정 된 상태로 유지하는 직접적인 결과입니다. 여기서는 Y10K 문제를 소개합니다.


답변

전혀 이유가 있습니까?

예. 이러한 소프트웨어는 ISO 8601을 사용 합니다.

ISO 8601은 다른 날짜 형식에 비해 여러 가지 장점이 있습니다.

  • 사양 문서가있는 표준입니다 🙂
  • 모호하지 않습니다. mm / dd / yyyy 및 dd / mm / yyyy는 13 일이 지나지 않으면 혼동 될 수 있습니다.
  • 사전 순으로 오름차순으로 정렬되므로 특별한 날짜 정렬 논리가 필요하지 않습니다. 이것은 사전 식 번호 정렬이 종종 혼동되는 파일 이름에 특히 유용합니다 (예 🙂 1_file, 10_file, 2_file.
  • 4 자리 연도와 0으로 채워진 월과 연도를 요구합니다. 이것은 2000 년 문제와 다른 모호성을 피합니다.

에 관해서는 ISO 8601은 처음부터 존재, 국가 / 시스템간에 데이터를 교환 할 때 사람들이 날짜 형식이 모호하고 혼란을 발견했기 때문에 그것은, 그리고 그들은 명확한 무언가를 필요로했다.

이론적 근거는 사양 소개를 참조하십시오 .

이 필드의 ISO 권장 사항 및 표준은 1971 년부터 제공되었지만 날짜와 시간에 대한 여러 가지 숫자 표시 형식이 여러 국가에서 공통적으로 사용되었습니다. 이러한 표현이 국가 경계를 넘어서 교환되는 경우, 숫자의 중요성에 대한 오해가 발생할 수 있으며, 그 결과 혼동 및 기타 결과적 오류 또는 손실이 발생합니다. 이 국제 표준의 목적은 오해의 위험을 없애고 혼란과 그 결과를 피하는 것입니다.

이 국제 표준은 날짜와 시간에 가장 일반적으로 사용되는 표현과 이전 국제 표준의 표현을 유지하며 실제로 사용되는 일부 새로운 표현에 대한 고유 한 표현을 제공합니다. 특히 데이터 처리 시스템과 관련 장비 간의 정보 교환 응용 프로그램은 잘못된 해석으로 인해 발생하는 오류와 이로 인해 발생하는 비용을 제거합니다. 이 국제 표준의 홍보는 국제 경계를 넘어서 상호 교환을 용이하게 할뿐만 아니라 소프트웨어의 이식성을 향상 시키며 조직 내뿐만 아니라 조직 간 의사 소통 문제를 완화시킵니다.

이 표준에서는 “기본”변형을 구분 기호 사용을 최소화하는 것으로 정의합니다. 그래서 YYYYMMDD는 IS 기본 확장 형식으로 대체가 YYYY-MM-DD.


답변

다른 모든 방법은 모호하기 때문입니다.

2003 년 1 월 2 일은 무슨 뜻입니까? 2003 년 1 월 2 일? 또는 유럽 : 2003 년 2 월 1 일? 01/02/03과 같이 연도에 두 자리 숫자를 사용하면 더욱 악화됩니다.

YYYYMMDD를 사용하는 이유는 날짜가 항상 분명한 20030201 날짜를 명확하게 전달할 수 있도록하는 규칙입니다. (더 쉽게 정렬 할 수 있습니다)

(이제 정수 2 천만 3 만 2 백 1과 1로 저장하지 마십시오.


답변

t1과 t2는 YYYYMMDD 형식으로 쓴 두 번을 나타내는 고유 한 정수로 둡니다. 그러면 t1 <t2는 t1 이후에 t2가 발생했음을 의미합니다.

DD 및 MM 첫 번째 형식으로이 순서를 잃습니다.

ISO는 유일한 합리적인 형식 인 IMO입니다.


답변

언급되지 않은 한 가지 점은 대화식 입력에서이 형식을 사용하여 입력을 제어 할 수 있다는 것입니다.

특정 연도 및 월을 모르면 월에 28, 29, 30 또는 31 일이 있는지 시스템에서 알 수 없습니다. 해당 연도 및 월의 대화식 입력이 먼저 시작되면 날짜 (마지막으로 삽입 된)가 허용 된 범위에 있는지 확인할 수 있습니다.

물론, 질문은 주로 날짜 형식에 관한 것이지만 날짜 형식은 사용자에게 제시된 형식을 따른다고 주장 할 수 있습니다.


답변

YYYYMMDD 주문은 번호를 주문하는 것과 같은 방식으로 날짜가 가장 중요합니다. MMDDYYYY는 “이백 이십 삼”을 “이십 이백삼”으로 쓰는 것과 같습니다.

우리 문화에서는 MMDDYYYY에 대해 자연스럽게 이해합니다. 인간으로서 우리는 시간에 대한 인식을 가지고 있으며 수년은 느리게 발전하기 때문입니다. 우리는 일반적으로 몇 년인지 알고 있습니다. 연도를 보는 것은 거의 중요하지 않으므로 우리는 그것을 뒤로 밀어 넣습니다. 달은 그 중요성을 유지하기에 충분히 빠르게 변화합니다. 다른 문화권에서는 이것을 다르게 취급합니다. 세계의 많은 사람들이 DDMMYYYY를 선호합니다.