전 세계 누구나 ​​이해할 수있는 보편적 인 날짜 형식이 있습니까?


10

캐나다에서는 모든 사람이 날짜 형식에 익숙합니다 YYYY-MM-DD. 유럽이나 남아프리카에서는 선호합니다 DD-MM-YYYY. YYYY-MM-DD날짜 형식 과 혼동되는 남아프리카 공화국의 사용자가 있습니다 . 이 상황을 처리 할 수있는 방법이 있습니까?

나는 모두에게 다음과 같은 방법을 사용하려고 생각했다. Feb 02, 2011


21
YYYY-MM-DD 형식도 ISO 표준이라고 생각합니다.
FrustratedWithFormsDesigner

2
"유럽이나 남아프리카에서는을 선호합니다 DD-MM-YYYY." 예를 들어 헝가리 ( YYYY.MM.DD) 또는 핀란드 ( DD.MM.YYYY)에서는 예외입니다 . 죄송합니다. 현실은 지저분합니다 :-(
Péter Török

6
다른 캘린더는 어떻습니까?

4
레이더 데이터 (북미)를 수집 할 때 파일 이름에이 데이터를 사용했습니다 prefix_1999_12_23_16_45_53.ext. 주된 이유 : 이것은 정렬, 검색 및 구문 분석이 용이했습니다. 검색 할 때 최대한 빨리 목표를 달성하기 위해 가장 중요한 단위부터 시작하려고합니다. 이런 종류의 문자열은 이진 트리 친화적입니다. 이 실험실은 유럽 출신의 학생들이 주도했지만 과학적 표준이 아니라면 이것이 상식이라고 생각합니다. 그러나 내가 자란 나라에서는 일상적으로 DD-MM-YYYY를 사용합니다. 추론 : 깨어날 때 가장 먼저 알고 싶은 부분은 무엇입니까?
Job

2
@Frustrated, 나는 그의 포인트 (무슬림이 예 1268년 12월 30일? 해석 얼마나) 다른 시작 연도와 캘린더 또는 달 개월이 있다는 추측 (약이있는. 연간 13) 등 그래서이되고 정말 유니버설은 어떤 숫자가 요일이고 어떤 요일인지에 동의하는 것 이상입니다 ...
Péter Török

답변:


15

모호한 그들은 숫자로 표현하는 경우 부분은 달 차별화 일이다.

02/03은 2 월 3 일 또는 3 월 02 일을 의미합니까?

월 식별자를 이름 이 있는 숫자에서 변경하면 해당 모호성이 제거됩니다. 귀하의 질문에 대답하기 위해 귀하의 변형은 Feb 02, 2011좋은 해결책 인 것 같습니다.

2 자리 숫자로만 쓰면 연도 번호에 여전히 잠재적 인 문제가 있지만 수정하기 쉽습니다 (4 번 사용).


10
그리고 다른 언어로 된 월 이름에 대한 번역 파일을 가질 수 있습니다.
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner 또한 올바른 (잘 알려진) 약어로 전문적인 번역을받는 것을 잊지 마십시오.
니콜

몇 달 동안 명명되지 않은 언어는 어떻습니까?
저의 올바른 의견 그냥

19

아니요 . 보편적으로 인정되는 날짜 형식은 없습니다.

ISO 8601 날짜 형식에 대한 국제 표준을 정의합니다. 따라서 아마도 가장 좋은 타협 일 것입니다. 그러나 당신이 말했듯이, 사용자는 항상이 형식을 좋아하지 않습니다.

올바른 해결책은 국가마다 다른 형식을 제시하는 것입니다. 선택한 프로그래밍 언어에 다음이 중요한 경우이를 달성하기위한 표준 라이브러리가있을 수 있습니다.


2
대단하다. 나는 보통 로그 파일 등에 YYYYMMDD를 사용합니다. 이제 ISO-8601을 준수한다고 말할 수 있습니다!
마크 해리슨

1
ISO 8601을 사용할 때 일반적으로 전체 내용을 명시 적으로 지정하는 것이 가장 좋습니다 (예 : 1999-12-25T00 : 00 : 00.000Z) . 네, 평범한 사람에게는 횡설수설처럼 보이지만 모호 할 가능성은 없습니다.
MattDavey

2
"올바른 해결책은 국가마다 다른 형식을 제시하는 것입니다." -전 세계 어디든지 배송 할 수있는 포장 명세서에 날짜를 어떻게 정확하게 인쇄해야합니까?
Scott Whitlock

@ScottWhitlock : 슬프게도이 문제에 대한 보편적 인 해결책은 없습니다. 날짜를 인쇄 할 때 패키지가 어디로 전송되는지 모르는 경우 ISO 8601이 가장 좋습니다.
Kramii 2016 년

"올바른 해결책은 국가마다 다른 형식을 제시하는 것입니다." 이것이 올바르지 않다고 말하고 싶습니다. 오늘날에도 일부 도서관은 내가 선호하는 언어를 기반으로 한 내가 선호하는 날짜 형식에 대한 아이디어를 얻었으므로 혼란을 일으켰습니다. 그러나 현재 모든 문화권을 고칠 수 없기 때문에 첫 번째 단계로 ISO 8601 또는 텍스트를 몇 달간 사용하십시오.
Erik I

9

문화 정보를 사용해야합니다. 또는 적어도 로컬 디스플레이 형식입니다.

JavaScript에서는 Date 클래스에 toLocaleString 메소드를 사용할 수 있습니다 .

C #의 경우 ToString을 사용할 때 형식 문자열을 사용할 수 있습니다 .

빠른 Google 검색은 원하는 언어로 문화를 사용하는 방법을 보여줍니다.


5

나는 YYYY-MM-DD와 함께 갈 것입니다 (항상 네 자리 연도와 두 자리 월과 일을 쓰십시오). YYYY-DD-MM은 아는 바가 드물기 때문에 YYYY-MM-DD 형식은 모호성이 가장 낮으며 결국 사용자가 따라 잡을 것입니다. 또한 사소한 분류 이점을 얻을 수 있습니다.


2

각 사용자에게 자신의 로캘을 부여하면 지역 기본 설정에 따라 날짜 및 기타 정보가 렌더링됩니까?


1

대부분의 프레임 워크에서 로케일을 구성하고 I18n을 사용하여 여러 번 구성 할 수 있습니다.


0

일반적으로 형식과 값을 모두 지정해야합니다. 이것은 모든 혼란을 피할 수있는 유일한 방법입니다. 예를 들어 "2011-02-02 (YYYY-MM-DD)"라고 말할 수 있습니다. 그러나 단순성과 가독성을 희생하므로 청중을 아십시오.

물론 "이후 모든 날짜는 YYYY-MM-DD ... 형식입니다."라고 말할 수 있습니다. 그러면 나중에 나타나는 "2011-02-02"는 분명합니다. 더 맛있을 수 있지만 다시 한 번 청중을 아십시오.


오른쪽, 에스토니아어 일 = päev 및 월 = kuu, 필리핀어 : araw 및 buwan, 핀란드어 : päivä, kuukausi, 헝가리어 : nap, hónap, 인도네시아어 : hari, bulan, 몰타어 : jum, xahar , 루마니아어 : zi, lună, 터키어 : gün, ay, 베트남어 : ngày, tháng ... 달이 m으로 시작하지 않거나 하루가 d로 시작하지 않는 언어는 말할 것도 없습니다 (독일어 : Monat, 태그 ) 및 라틴 알파벳과 같은 것을 사용하지 않는 언어.
직업

1
글쎄요, "2011-02-02"는 어쨌든 분명합니다 ...;)
Martin

0

이 제안은 아마도 쓸모가 없지만 로마 숫자로 쓰여진 달을 보았습니다. 물론 2011 년 3 월 11 일은 11 월 11 일이거나 3 월 3 일일 수 있지만 첫 해석이 더 자연스러운 것 같습니다.


1
로마 숫자? "자연스러운?"
Sane Wonko

@Wonko, "자연"이란 의미에서 XI는 하루보다 한 달로 해석 될 가능성이 높습니다. 나는 그것이 매우 주관적이라는 것을 인정한다.
ggambett

+1, 나는 이런 식으로 생각하고있었습니다. 그러나 나는 또한 당신의 비평가들에 동의합니다.
직업

그런 형식을 본 적이 없어서 "로마 숫자"라고 생각하기 전에 "오타"나 "번역 오류"를 먼저 생각했습니다. 그래야만 그 의미를 추측하려고합니다.
Sane Wonko

2011 년 3 월 2 일은 11 월로 해석 될 것입니다.
MSalters

0

나는 그것이 당신이하는 일, 입력에 대한 얼마나 많은 통제력, 그리고 어딘가에 저장하고 있는지에 달려 있다고 말하고 싶습니다.

저장을 위해 Mike Dunlavey가 제안한 것을 사용합니다.

시간이 UTC 인 YYYYMMDDHHMMSS는 선택의 여지가있는 이유에 따라 내가 선택할 수있는 방법입니다. 선택의 여지가 없으면 사용자가 선택할 수 있습니다.

그는 이것을 대답으로 남겨 두지 않았으므로 내가 할 것입니다.

한 가지 더 : CC 만료 날짜를 입력하는 방법에 대한 다음 스크린 샷을 확인하십시오. http://www.ubercart.org/files/credit_card_checkout.jpg

이 예제에서 가장 좋은 점은 생각하지 않는다는 것입니다. 월의 숫자와 이름을 모두 사용합니다. 입력과 비슷한 것을 사용하는 것이 좋습니다. 해당 월에는 숫자와 현지화 된 이름을 모두 포함하십시오. 연도 및 일의 경우 숫자 Up / Down 또는 콤보 상자를 사용하십시오. 그런 다음 달력 컨트롤도 멋지게 보입니다.

내가 말했듯이, 그것은 달려 있습니다. 스토리지의 경우 : 데이터베이스를 사용하는 경우 이미 명확한 데이터 형식을 제공하는지 확인하십시오. 다른 방법을 사용하는 경우 "시간이 UTC 인 YYYYMMDDHHMMSS"가 도움이되는지 확인하십시오. 사용자에게 제공하기 위해 어떤 국가 / 지역이 관련 될 수 있는지 고려한 다음 "직접 생각하지 마십시오"종류의 표현을 가장 간단하게 선택하십시오. 옵션을 제공하는 것도 고려하십시오.

마지막으로 이미 비슷한 기능을 수행하는 멋진 제품을 확인하고 어떻게 작동하는지 알아보십시오.


헛소리, 스크린 샷을 읽을 때 11 월 11 일에 대해 이야기하고 있다고 생각했는데 신용 카드의 만료 날짜에 대해 이야기 할 때 날이 필요하지 않다는 것을 깨닫기 위해서만 : /
Matthieu M.

@Matthieu M., 예, 약간 오해의 소지가 있습니다 :) 그러나 CC를 손에 들고 있고 데이터 입력을 수행하려는 경우 아마도 상처보다 더 도움이 될 것입니다. 하루에 3 개의 상자가 있으면 모호 할 수 있습니다.
Job

0

웹 사이트의 최종 사용자를위한 보편적 인 날짜 및 시간 형식은 없습니다. 클라이언트의 시간대마다 값이 다르기 때문에 단일 날짜 시간 값도 없습니다. 사용자 문화에 따라 데이터, 시간, 통화, 달력, 숫자 형식을 대상으로하는 세계화를 사용해야합니다 (사용자의 브라우저에서 전달 된 승인 된 언어 또는 응용 프로그램에서 직접 구현 된 스위치를 통해받을 수 있음). 일부 API (예 : .NET)는이 기능을 직접 지원합니다.

날짜 및 시간을 databse에 저장하려면 표준 형식 UTC (협정 세계시)를 사용하십시오.


UTC는 그다지 보편적이지 않습니다. 윤초를 고려하려면 TAI
mouviciel

-2

국제 컴퓨팅 세계의 모든 지능이이 견해를 깨뜨릴 수 없다는 것은 불행한 일입니다.

Microsoft 나 다른 공급 업체는 날짜 마스크를 추가하여 월과 같이 날짜가 0이 아닌 3 자리 숫자로 표시되도록 고려하고 있습니다. 연습을 채택하면 수학적으로 동등한 일련의 새로운 날짜 형식을 홍보하는 동시에 전통적인 날짜 레이아웃을 쉽게 식별하고 구별 할 수 있습니다. 그건:

  • 0MM-DD-YYYY (예 : 2016 년 2 월 3 일의 경우 002-03-2016)

  • DD-0MM-YYYY (예 : 2016 년 2 월 3 일의 경우 03-002-2016)

  • YYYY-0MM-DD, 예 : 2016-02-03의 경우 2016-002-03

  • YYYY-DD-0MM, 예 : 2016-03-002 (누군가 사용하려는 경우)

이 방법으로 해결하기에는 너무 쉬운 것 같습니다 ... 나는 단순하게 잘 팔리지 않는다고 생각합니다.


2
내가 말할 수있는 것은 : xkcd.com/927 이미 날짜에 대한 ISO 표준이 있으며 다른 표준은 필요하지 않습니다.
Simon B
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.