Zapobiegaj dodawaniu przesunięcia strefy czasowej w programie Json.NET 4.5 podczas korzystania z MicrosoftDateFormat

Brak zwyczajuDateTimeConverterBase implementacja, jest jakiś sposób na utrzymanie Json.NET 4.5+, gdy jest ustawiony do użyciaDateFormatHandling.MicrosoftDateFormat, od dodania przesunięcia strefy czasowej dla dowolnego nie-UTCDateTime to jest dane?

<code>"\/Date(1333645844276-0600)\/"
</code>
Detale

Zmieniam projekt API z wykorzystaniem wbudowanej platformy .NETJavaScriptSerializer do korzystania z Json.NET do generowania JSON. W Json.NET dla UTCDateTime, domyślna serializacja datetime była podobna do wersji .NET:

<code>"\/Date(1333645844276)\/"
</code>

W przeciwieństwie do innych niż UTCJavaScriptSerializer, Json.NET dołącza przesunięcie strefy czasowej do wyników (-6 dla mojego obszaru, o tej porze roku):

<code>"\/Date(1333645844276-0600)\/"
</code>

Oto kod, którego używam do przełączenia Json.NET 4.5+ z powrotem na\/Date(...)\/ format (tzwMicrosoftDateFormat):

<code>JsonSerializerSettings customJsonSettings = new JsonSerializerSettings() {
    DateFormatHandling = DateFormatHandling.MicrosoftDateFormat
};
string result = JsonConvert.SerializeObject(DateTime.Now, customJsonSettings);
</code>

Rozwiązanie wydawało się tak proste, jak nakazanie Json.NET użycia innegoDateTimeZoneHandling oprawa. Próbowałem każdego ustawienia dlaDateTimeZoneHandling (Local, Utc, Unspecified, iRoundtripKind) i wszystkie zachowują „-0600” na wyjściu. W rzeczywistości wszystkie one dają identyczne wyniki dla nie-UTCDateTime.

<code>JsonSerializerSettings customJsonSettings = new JsonSerializerSettings() {
    DateFormatHandling = DateFormatHandling.MicrosoftDateFormat,
    DateTimeZoneHandling = DateTimeZoneHandling.Utc
};
string result = JsonConvert.SerializeObject(DateTime.Now, customJsonSettings);
"\/Date(1333647855743-0600)\/"
</code>
Uwaga

Idealnie byłoby, gdybym miał już wszystkie czasy w UTC. Z pewnością planuję to zrobić za pomocą następnej wersji tego API. Ponieważ jest to API na żywo, nie warto ryzykować zmiany danych wyjściowych, dopóki nowa wersja nie zostanie wydana. Wydaje się, że nie stanowi to problemu dla większości systemów analizujących JSON, ale nie mogę ryzykować zmiany, ponieważ standard JSON oficjalnie nie mówi nic o serializacji daty.

questionAnswers(2)

yourAnswerToTheQuestion