2011-01-27 2 views
5

우리 신청서의 기준을 정하고 있습니다.사용할 시스템 기본 날짜 형식은 무엇입니까?

궁금한데, 기본 날짜 형식을 선택해야합니까?

이 있어야한다 :

  • 국제화 & 시간대 인식, 형식이
  • 효율적으로 SimpleDataFormat에 의해 구문 분석 할 수
  • 사용자 현지 시간으로 표현 할 수 있어야한다 (또는 모두를, JDK 클래스에 한함)
  • 프로그래밍 언어 불가지론 자 (java, python, God는 C++을 구문 분석 할 수 있습니다.)
  • ISO 기반 또는 다른 허용 표준이 바람직합니다.
  • HTTP를 통해 통신하십시오 (이러한 요구가 발생하면 JSON 또는 YAML 또는 이와 유사한 것이어야합니다)
  • 시간을 초 단위로 표시 할 수 있습니다 (가능하면 더 좋은 경우, 더 나은 초 단위).
  • 인간이 읽을 수는 플러스이지만
  • 컴팩트 플러스하지만


맥심을 주셔서 감사합니다 필요가 없습니다 필요하지 않습니다.

+3

관련 : http://stackoverflow.com/questions/2532729/daylight-saving-time-and-timezone-best-practices – BalusC

답변

1

가장 표준 및 표준 양식은 아마 "Unix Time"입니다 : 1 월 1 일 자정 협정 세계시 (UTC) 이후 경과 된 시간 (초), 사용자가 설정 한 경우 1970

기본 시간 형식으로 쉽게 할 수 파싱하고, 메모리에 저장하고, 디스크에 쓰고, HTTP를 통해 쉽게 통신 할 수 있습니다. 또한 확실히 받아 들여지는 표준이며 어떤 의미에서는 시간대를 불문하고 잘 정의되어 있기 때문에 "시간대 인식"입니다.

는 (이것은 내가 항상 내 모든 타임 스탬프를 저장하는 형식이며, 데이터베이스에, 메모리, 디스크, ...)

+0

네,하지만 사용자 로컬 시간을 나타낼 수 있어야합니다. 그래서 형식으로 시간대를 포함해야합니다. 이 점을 나타 내기 위해 질문을 업데이트 할 것입니다. –

7

YYYY-MM ISO 형식이 : MMZ가 (ISO 8601 참조) 당신은 추가 할 수 있습니다 초 등

당신은 쉽게 읽을 수 있습니다 SimpleDateFormat에 대한 문제가되지 않습니다.

1

"right"기본 형식은 실제로 무엇을하고 있는지에 따라 다릅니다. 구문 분석, 저장 및 표시 형식은 모두 다를 수 있습니다.

날짜를 저장하려면 사용자 로컬 시간대에 표시하려는 경우에도 항상 거의 항상 UTC를 사용하려고합니다. 나는 "(거의)"라고 말하지만, 나는 이 아닐 경우를 생각할 수 없다.은 저장된 날짜에 대해 UTC를 원한다. 은 날짜가 발생한 곳의 TZ 정보를 저장하기를 원하므로 해당 현지 시간에보고 할 수 있지만 더 자주 날짜가 인 사람의 현지 시간을 표시하려고합니다.. 이는 원래 현지 시간과 무관하게 현재 사용자의 현지 시간을 결정할 수있는 방법을 의미합니다.

"기본 형식"은 일반적으로 뷰어 로캘에 의해 결정되어야합니다. 08/09/10은 일반적으로 미국에서 2010 년 8 월 9 일을 의미합니다.("Middle endian")이지만 대개는 세계 대부분의 지역에서 2010 년 9 월 8 일을 의미합니다 ("Little endian"). ISO-8601 형식 "2010-09-10"은 안전하고 모호하지 않지만 사람이보기를 기대하지 않는 경우가 많습니다. 인터넷상의 날짜 및 시간은 RFC-3339이고 메시지 형식 (날짜 전송)은 RFC-2822을 볼 수 있습니다.

날짜를 구문 분석하려면이를 구문 분석하여 UTC로 변환해야하지만, 당신이 받아들이는 것에 융통성있게 다시 말하지만, 최종 사용자 인 Locale 및 timezone (검색 가능할 경우)은 입력으로 사용할 문자열의 형식을 결정하는 데 도움을 줄 수 있습니다. 이것은 사용자가 입력 한 문자열을 가정합니다. 날짜/시간 스탬프를 생성하는 경우 양식을 제어 할 수 있으며 구문 분석은 문제가되지 않습니다.

나는 또한 전에 보지 못했던 지금까지 즐겨 찾았던 두 번째 BalusC link입니다.

관련 문제