2017-11-27 12 views
0

ISO8601 형식의 타임 스탬프를 만드는 코드가 있지만 들어오는 날짜의 형식이 잘못된 경우 변환이 실패합니다.ISO8601 형식의 타임 스탬프에 잘못된 값을 표시하는 표준 방법이 있습니까?

이 형식으로 잘못된 타임 스탬프를 표시하는 표준 방법이 있는지 알고 싶습니다.

위키피디아는 1583 년 이전에 정상 작동 상태에서 언급되지 않았기 때문에 처음 생각했을 때 처음에는 값을 0000-01-01T00:00:00Z과 같이 설정했습니다. 잘못된 값을 표시하는 표준 방법이 있다면 대신 사용하는 것이 좋습니다.

+1

그리고 어떤 프로그래밍 언어를 사용 하시겠습니까? –

+0

표준 방식으로 표현하는 것이 유효한 타임 스탬프가 아니겠습니까? – jsheeran

+0

C++이 내가 사용하고있는 것이지만, 특정 언어의 특성보다는 내가 관심을 갖는 일반적인 접근 방식이었다. –

답변

1

ISO 8601은 유효하지 않은 타임 스탬프를 나타내는 문자열을 정의하지 않습니다. 유효한 형식 문자열이 무엇인지 정의합니다.

또한 ISO 8601은 proleptic Gregorian calendar을 사용합니다. 즉, 긍정적 인 해가 모두 유효 함을 의미합니다. BC/BCE와 같은 시대는 정의하지 않습니다. 다시 말하면, 0001-01-01 전날은 예측 성 그레고리력에서 0000-12-31 일 것입니다. 0000-01-01 전날 어느 날 -0001-12-31 (그리고 0은 윤년입니다)이됩니다.

코드에서 "유효하지 않은"표현은 언어와 구현에 따라 다릅니다. 대부분의 경우 null이 적합합니다. 엄격하게 문자열로 작업한다면 ""이 좋을 것입니다. 더 많은 문맥없이 말하기가 어렵다.

+0

데이터가 JSON 문자열로 교환되므로 빈 문자열이 나에게 합리적인 방식으로 들립니다. –

+0

'null' (문자열이 아님)은 JSON에서도 유효합니다. 역 직렬화되는 대상에 따라 더 적절할 수 있습니다. 예를 들어 .Net 개발자는 해당 필드를 Nullable (일명 'DateTime?')으로 역 직렬화 할 수 있습니다.이 경우 null이 자동으로 전달되지만 빈 문자열은 내 방식대로 나가 파서에게 어떻게 대처해야하는지 가르쳐주세요. –

+0

[이 답변] (https://stackoverflow.com/a/21121267/634824)도 의사 결정에 유용 할 수 있습니다. –