मुझे JSON क्रमबद्ध ऑब्जेक्ट का उपयोग कर क्लाइंट के ब्राउज़र पर सही तिथि प्रदर्शित करने में समस्याएं आ रही हैं। उपयोगकर्ता परिभाषित करने में सक्षम है कि वे किस समय क्षेत्र को डेटा देखना चाहते हैं। यह देखते हुए, मैं यूटीसी तिथि को सर्वर पर उपयोगकर्ता के समय क्षेत्र में परिवर्तित करता हूं। फिर मैं JSON के माध्यम से ब्राउज़र में दिनांक/समय (जो पहले से ही उनके निर्धारित समय क्षेत्र में परिवर्तित हो) को क्रमबद्ध करना चाहता हूं।JSON दिनांक सीरियलाइजेशन और समय क्षेत्र
सरल लगता है, हालांकि जेएसओएन धारावाहिकों का उपयोग मैं कर रहा हूं, मेरी तिथियों को गंभीर रूप से मिल रहा है। सर्वर यूटीसी में है और ग्राहक सेंट्रल (-6) में है। तारीखों को समायोजित किया जा रहा है (-12 घंटे) भले ही मैं डेटटाइम निर्दिष्ट कर रहा हूं। निर्दिष्ट न करें।
किसी भी तरह .NET जानता है कि क्लाइंट का ब्राउज़र किस समय क्षेत्र में है और सर्वर किस समय क्षेत्र में है और यह मेरी तिथियों/समय से -6 को अस्वीकार कर रहा है, भले ही मैंने उपयोगकर्ता की वैश्विक सेटिंग्स के प्रति समय पहले ही समायोजित कर दिया हो और तारीखों को निर्दिष्ट नहीं किया जाना चाहिए। मैं अपनी तिथियों को आजमाने और समायोजित करने के लिए JSON serializers कैसे प्राप्त कर सकता हूं?
List<ErrorGridModel> models = Mapper.Map<ErrorCollection, List<ErrorGridModel>>(errors);
foreach (ErrorGridModel m in models)
{
//convert UTC dates to user local dateTime - split out date vs. time for grouping & splitting columns
DateTime dtLocal = TimeZoneInfo.ConvertTimeFromUtc(m.ErrorDate, this.AppContext.User.TimeZoneInfo);
m.ErrorDate = new DateTime(dtLocal.Year, dtLocal.Month, dtLocal.Day, 0, 0, 0, DateTimeKind.Unspecified);
m.ErrorTime = new DateTime(1900, 1, 1, dtLocal.Hour, dtLocal.Minute, dtLocal.Second, DateTimeKind.Unspecified);
}
IQueryable<ErrorGridModel> dataSource = models.AsQueryable();
return new ContentResult() { Content = JsonConvert.SerializeObject(dataSource.ToDataSourceResult(request), new JsonSerializerSettings() { DateFormatHandling = DateFormatHandling.MicrosoftDateFormat }), ContentType = "application/json" };
//return Json(dataSource.ToDataSourceResult(request));
आईएसओ दिनांकों काम करने के लिए दिखाई देते हैं, लेकिन मैं उन्हें उपयोग नहीं कर सकते के रूप में मैं 3 पार्टी नियंत्रण है कि पुराने माइक्रोसॉफ्ट प्रारूप ... जो मुझ पर समय क्षेत्रों समायोजित कर देता है चाहते हैं।
यह आपकी समस्या का उत्तर नहीं है, लेकिन आप जावास्क्रिप्ट को तारीख तर्क पुश करने के लिए चाहते हैं - moment.js http://momentjs.com/ –