XML 파일에서 날짜 / 시간에 사용할 올바른 형식은 무엇입니까?


98

.NET을 사용하여 XML 파일에 쓸 때 날짜 / 시간에 어떤 형식을 사용합니까? 단순히을 사용 DateTime.ToString()합니까, 아니면 특정 형식을 사용해야합니까?

답변:


138

난 항상 사용 ISO 8601 형식 (예 : 2008-10-31T15:07:38.6875000-05:00) - date.ToString("o"). 그것은이다 XSD 날짜 형식 뿐만 아니라. 날짜와 시간 사이에 'T'를 표시하지 않으려면 필요한 경우 수동 형식 문자열을 사용할 수 있지만 기본 형식과 표준 날짜 및 시간 형식 문자열입니다 .date.ToString("yyyy-MM-dd HH:mm:ss");

편집 : XSD 또는 웹 서비스에서 생성 된 클래스를 사용하는 경우 DateTime 인스턴스를 클래스 속성에 직접 할당 할 수 있습니다. XML 텍스트를 작성하는 경우 위를 사용하십시오.


44

편집 : 이것은 나쁜 조언입니다. 위와 같이 "o"를 사용합니다. "s"는 잘못된 일을 합니다.

나는 항상 이것을 사용합니다 :

dateTime.ToUniversalTime().ToString("s");

스키마가 다음과 같으면 올바른 것입니다.

<xs:element name="startdate" type="xs:dateTime"/>

결과는 다음과 같습니다.

<startdate>2002-05-30T09:00:00</startdate>

여기에서 자세한 정보를 얻을 수 있습니다. http://www.w3schools.com/xml/schema_dtypes_date.asp


10
이렇게하면 날짜가 UTC로 변환됩니다. 날짜를 처리 할 때 로케일에 따라 현재 시간대로 다시 변환해야합니다 (모든 것을 UTC로 처리하지 않는 한). 또한 일반적으로 날짜가 UTC임을 나타 내기 위해 끝에 'Z'를 입력합니다.
Ryan

"s"는 soap UI에서 .net 웹 서비스를 호출 할 때 작동합니다.
Tristan Channing 2014 년

4

XML 문자열을 수동으로 어셈블하는 var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ")); 경우 공식 XML 날짜 시간 형식을 출력합니다. 그러나 내장 된 직렬화 방법을 사용하면 형식에 대해 걱정할 필요가 없습니다.


jonnii는 기본적으로 동일한 결과를 반환합니다.
chilltemp

3
이 경우 모든 날짜는 UTC 시간대 여야합니다. 그렇지 않으면 "Z"접미사 사용이 잘못되었습니다.
Fr0sT 2013 년

이전 설명을 반복 할 것입니다. dt가 utc가 아니면 실제로는 잘못된 것입니다.
Brady Moritz

3

DTD는 무엇을 말해야합니까?

XML 파일이 다른 기존 소프트웨어 (예 : SOAP)와 통신하기위한 것이라면 해당 소프트웨어가 예상하는 바를 확인하십시오.

XML 파일이 존재하지 않는 소프트웨어 (예 : 작성중인 소프트웨어)와의 직렬화 또는 통신 용인 경우이를 정의 할 수 있습니다. 이 경우 선택한 언어로 구문 분석하기 쉽고 사람이 읽기 쉬운 것을 제안합니다. 예를 들어, 귀하의 언어 (VB.NET 또는 C # .NET 또는 기타)가 ISO 날짜 (YYYY-MM-DD)를 쉽게 구문 분석 할 수있는 경우 이것이 제가 제안하는 것입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.