0

application/xml으로 콘텐츠를 요청할 때 DateTime 출력 형식을 제어하려면 어떻게해야합니까? 다음은 JSON에서 작동합니다.웹 API에서 XML 응답의 DateTime 형식 제어

JsonMediaTypeFormatter jsonFormatter = config.Formatters.JsonFormatter; 
jsonFormatter.SerializerSettings = new JsonSerializerSettings { 
    DateFormatString = "yyyy-MM-dd" }; 

XmlMediaTypeFormatter의 기능은 무엇입니까?

업데이트 : 의미 상으로, 제 데이터에는 시간 정보가 없습니다. 기술적으로, 나는 a) 페이로드 최소화 b) 소비 단순화 (클라이언트 측에서 프로세스/형식화 필요 없음) c) 형식에 관계없이 일관된 응답을 요구했습니다.

+0

무엇을 변경하려고합니까? 그 이유는 무엇입니까? XML은 이미 날짜와 시간에 대한 형식이 잘 정의되어 있습니다 (ISO-8601). 이것은 최종 사용자를 대상으로하지 않고 * 기계가 읽을 수있는 * 것을 의미합니다. (마찬가지로 JSON - 나는 JSON에서'MM/dd/yyyy'의 사용을 강력하게 막을 것입니다.) –

+0

불행히도 언더 레이 DB는 datetime 데이터 유형을 사용하여 날짜를 저장합니다. C#에는 날짜 만 형식이 없습니다. 맞습니까? 프런트 엔드는 날짜 부분 만 필요합니다. – UserControl

+0

XML에서 비표준 형식을 사용해야하는 이유는 무엇입니까? 그것은 연속체가 아닌 IMO입니다. (제쳐두고, "Noda Time"(http://nodatime.org) 프로젝트에서 "just date"를 포함하여보다 다양한 날짜/시간 유형을 확인할 수 있습니다. XML에서 미국 중심의 날짜 형식을 사용하는 것이 좋습니다 ...) –

답변

1

당신은 당신의 자신의 형식을 지정하지 않아야합니다 - 당신이 사용하는 대신, 값이 단지 날짜를 될 운명이되는 XML 시리얼을 말해야한다 :

[XmlElement(DataType="date")] 

그런 다음 config.Formatters.XmlFormatter.UseXmlSerializer = true와 XML 시리얼 라이저의 사용을 강제로 너 괜찮을거야. 그렇게하면 표준 (ISO-8601) 형식 인 yyyy-MM-dd ...을 사용할 수 있습니다. 이는 표준 도구 (예 : LINQ to XML)가 XML을 적절히 구문 분석 할 수 있음을 의미합니다.