I'v कुछ समय, उस के लिए there's no standard way और के लिए JSON स्ट्रिंग में दिनांक के साथ काम कर दिया जिसके कारण वहाँ यह करने के लिए इतने सारे अलग अलग तरीकों से कर रहे हैं! शायद यह बेहतर था अगर जेएसओएन विनिर्देश पहली जगहों के लिए मानक प्रारूप निर्दिष्ट कर सकता है!
माइक्रोसॉफ्ट ने अपने अपने तरीके से यह कर रहा है, UTC स्वरूप में 1970 के बाद से msecs गिनती यह है की तरह "/Date(1319266795390+0800)/"
हम कभी ASP.Net JavaScriptSerializer
उत्पादन की चोटी पर रेगुलर एक्सप्रेशन का उपयोग के बाद से ISO-8601 format के लिए ऊपर स्ट्रिंग बदल रहे हैं कुछ ।यह एक W3C मानक, मानव पठनीय और जिस तरह से अधिकांश ब्राउज़र को क्रमानुसार स्ट्रिंग के लिए तिथि है, तो यहां देखें:
static readonly long DATE1970_TICKS = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).Ticks;
static readonly Regex DATE_SERIALIZATION_REGEX = new Regex(@"\\/Date\((?<ticks>-?\d+)\)\\/", RegexOptions.Compiled);
static string ISO8601Serialization(string input)
{
return DATE_SERIALIZATION_REGEX.Replace(input, match =>
{
var ticks = long.Parse(match.Groups["ticks"].Value) * 10000;
return new DateTime(ticks + DATE1970_TICKS).ToLocalTime().ToString("yyyy-MM-ddTHH:mm:ss.fff");
});
}
आप आसानी से प्रारूप बदलने के लिए, आपकी आवश्यकताओं को पूरा कर सकते हैं कस्टम दिनांक और समय स्वरूपों को देखने के लिए check out MSDN article here
यहाँ उसके उपयोग के तरीके:
JavaScriptSerializer ser = new JavaScriptSerializer();
var JsonSrt = ISO8601Serialization(ser.Serialize(DateTime.Now)); // "\"2012-05-09T14:51:38.333\""
अद्यतन:
वहाँ एक Alte है
var str = "/Date(1319266795390+0800)/";
str.replace(/\/Date\((\d+)\+\d+\)\//, function (str, date) {
return new Date(Number(date)).toString();
});
स्रोत
2012-05-09 14:19:46
क्या आप अपने प्रश्न के पाठ में JSON स्ट्रिंग का अधिक पूर्ण उदाहरण शामिल कर सकते हैं जिसे आप अधिक "पठनीय" बनाना चाहते हैं। समस्या यह है कि जेएसओएन का इस्तेमाल ज्यादातर क्लाइंट को वेब क्लाइंट में स्थानांतरित करने और JSON को जावास्क्रिप्ट ऑब्जेक्ट में कनवर्ट करने के लिए स्ट्रिंग में बदलने के लिए किया जाएगा। जावास्क्रिप्ट वस्तुओं को पठनीय नहीं होना चाहिए। यदि आपके पास उदाहरण के लिए ऑब्जेक्ट्स के ऐरे हैं जो दिनांक के गुणों के रूप में हैं, तो आप इसे मानव के लिए अच्छी तरह से पठनीय नहीं बना सकते हैं। तो यह समझना महत्वपूर्ण है कि किस प्रकार का डेटा (कौन सा ऑब्जेक्ट) आपने JSON स्ट्रिंग को क्रमबद्ध किया है। – Oleg
क्या आप जावास्क्रिप्ट समाधान पर विचार करेंगे, या आप रूपांतरण करने के लिए सी # का उपयोग करने पर मृत सेट हैं? – jmort253