2015-01-26 1 views
2

"2006-09-01T07 : 00 : 00.00 + 0000"형식으로 날짜를 보내야하는 REST 호출 작업 중입니다.이 날짜 형식은 무엇입니까? 2006-09-01T07 : 00 : 00.000 + 0000? ISO_8601입니까?

사용자가 "YYYY/MM/DD"형식으로 날짜를 입력하고 "YYYY-MM-DDTHH : MM : SS.MMMZ"형식을 사용하여 ISO 8601의 날짜 형식을 지정하기 위해 "moment.js"를 사용하고 있습니다. 그러나 그것은 나에게이 결과를 준다 "1969-06-20T00 : 06 : 00.Jun-07 : 00".

그렇다면 moment.js 또는 Javascript를 사용하여 "2006-09-01T07 : 00 : 00.000 + 0000"형식으로 날짜를 얻으려면 어떻게해야합니까?

+1

가능한 중복의 [ISO-8601 형식의 문자열을 Javascript로 어떻게 출력합니까?] (http://stackoverflow.com/questions/2573521/how-do-i-output-an-iso-8601-formatted-string-in-javascript) – Schwern

+0

대문자 "M"은 월을 나타내며 소문자 "m"은 분을 나타냅니다. 당신은 그것의 다른 부분에 대해서도 필요한 경우를 점검해야합니다. –

답변

4

Yes, it is ISO 8601. 2006-09-01T07:00:00.000+0000은 2006 년 9 월 1 일, 7 시간 0 분 0.000 초는 UTC에서 0 시간 오프셋입니다. 십진법이 허용되는지 여부는 당사자들이 날짜를 교환 할 때까지입니다 (ISO의 멋진 방법 인 "선택 사항입니다"). 소수

시간, 분 또는 초의 소수가 포함될 수있는 특정 애플리케이션에 대해 필요하다면

4.2.2.4 표현. 소수점 이하 자릿수가 포함되는 경우, 하위 시간 요소 (있는 경우)를 생략하고 소수점 이하 자릿수를 정수 부분에서 ISO 31-0에 명시된 10 진수 부호 (즉, 쉼표 [] 또는 전체 정지 [ .]. 이 중에서 쉼표가 선호 기호입니다. 숫자의 크기가 1보다 작 으면 소수점 부호는 3.6에 따라 두 개의 0으로 시작해야한다.

신청서에 따라 교환 당사자는 소수 자릿수를 합의해야합니다. 형식은 십진법 기호 다음에 필요한만큼의 숫자로 [hhmmss, ss], [hhmm, mm] 또는 [hh, hh]로 적절하게 (시 분 초,시 분 및시 각각) 지정해야합니다. 십진 분수는 적어도 하나의 숫자를 가져야한다. 아래의 예에서 가장 작은 시간 요소에 한 자릿수의 소수를 제공하기로 합의했습니다. @chansen 지적한 바와

(기술적는 4.3.3 (d)에있어서의 모든 부분이 (더 분리기 기본 형식을 사용하지해야하므로 시간대 세퍼레이터 2006-09-01T07:00:00.000+00:00 일) 또는해야 확장 된 형식 (분리 기호 포함)은 아무도 그걸 귀찮게하지 않지만 strptime은 해당 형식을 생성 할 수 없으며 일부 ISO 8601 파서를 깨뜨릴 것입니다.

출력 결과는 Javascriptmoment.js에 대한 다른 답변에서 다룹니다.

자바 스크립트의 출력은 Date.toISOString입니다. Date.new은 ISO 8601 문자열도 허용합니다. Internet Explorer는 버전 9 (IE 8 still represents 5% of desktop users)에만 추가했지만 모든 최신 브라우저에서 지원해야합니다.

여기에 moment.js docs on String formatting이 있습니다. 을 사용하여 세 가지를 의미하기 때문에 YYYY-MM-DDTHH:MM:SS.MMMZ이 잘못되었습니다. 원하는 것은 YYYY-MM-DDTHH:mm:ss.SSSZZ입니다.

  • YYYY - 년
  • MM - 월 번호 (2 자리)
  • DD - 달의 일 (2 자리)
  • HH - 시간 (2 자리, 24 시간 형식)
  • 밀리미터 - 분 (2 자리)
  • SS - 초 (2 자리)
  • SSS - 초 수천
  • ZZ - UTC는
  • 012,351 오프셋 6,
+0

YYYY-MM-DDTHH : mm : ss.SSSZZ - worked – user583726

+1

실제로 ISO 8601 표현은 유효하지 않습니다. 날짜 및 시간이 확장 형식 인 경우 영역 지정자는 기본 형식이 될 수 없습니다. – chansen

+0

@ chansen 4.3.3 (d), 있습니다. 당신은 기술적으로 올바른 것입니다 (올바른 최선의 종류)! 나는 그것이 실제로 중요하다고 생각하지 않는다. 나는 분리 자로 시간대를 출력하기 위해 strptime을 얻을 수도 있다고 생각하지 않는다. – Schwern

0

2006-09-01T07 나를 위해 일한 형식 : 00 :

+ 0000 00.000했다 : YYYY-MM-dd'T'hh : mm : ss.sssZ

관련 문제