2012-05-22 29 views
7

मैं MVC में एक नियंत्रक के लिए जावास्क्रिप्ट से एक तिथि मूल्य मिल रहा है और मैं नेट प्रारूप दिनांक समय है, लेकिन इसके लिए मुझे एक त्रुटि दे रही है इस तरह के रूप में यह पार्स करने के लिए करना चाहते हैं:नेट दिनांक समय में कनवर्ट जावास्क्रिप्ट दिनांक

स्ट्रिंग को वैध दिनांक समय के रूप में पहचाना नहीं गया था।

जावास्क्रिप्ट तारीख का प्रारूप है:

"Wed May 23 2012 01:40:00 GMT+0200 (W. Europe Daylight Time)" 

मैं इस की कोशिश की है, लेकिन इसके काम नहीं कर रहा:

DateTime.ParseExact(begin.Substring(1, 24), "ddd MMM d yyyy HH:mm:ss", CultureInfo.InvariantCulture); 

किसी को भी मुझे एक नमूना कोड दे सकते हैं, कृपया? धन्यवाद!

उत्तर

6

एक पाठपरक प्रतिनिधित्व को पार्स करने के बजाए यह एक टाइमस्टैम्प से DateTime बनाने के लिए और अधिक मजबूत होगा। एक जे एस Date से एक टाइमस्टैम्प प्राप्त करने के लिए:

var msec = date.getTime(); 

और में msec (जो मिलीसेकेंड की मात्रा का प्रतिनिधित्व करता है) कन्वर्ट करने के लिए एक DateTime:

var date = new DateTime(1970, 1, 1, 0, 0, 0, 0); // epoch start 
date = date.AddMilliseconds(msec); // you have to get this from JS of course 
+0

नेट 4.6 उपयोग से '' 'DateTimeOffset.FromUnixTimeMilliseconds (msec) .DateTime''' –

5

निम्नलिखित एक में डिफ़ॉल्ट दिनांक समय modelbinder के साथ अच्छी तरह से पार्स .NET एमवीसी नियंत्रक:

var myJsDate = new Date(); 
var myDotNetDate = myJsDate.toISOString(); 
+0

यह पूरी तरह से काम करता है और अधिक संक्षेप में है – WraithNath

1

यहां मैंने क्या किया और क्यों। आशा है कि ये आपकी मदद करेगा।

जे एस दिनांक var d = new Date()

रिटर्न:, गुरु: गुरु नवम्बर 19 08:30:18 पीएसटी 2015

सी # की तरह नहीं है इस प्रारूप तो यूटीसी के लिए परिवर्तित:

var dc = d.toUTCString() 

रिटर्न 1 9 नवंबर 2015 16:30:18 यूटीसी

यूटीसी - विश्व समय मानक एक समय क्षेत्र नहीं है, इसलिए आपको इसे समय क्षेत्र में बदलना होगा

var cr = dc.replace("UTC","GMT") 

अब यह

गुरु, 19 नवंबर 2015 16:30:18 GMT

एक पंक्ति में

var ol = d.toUTCString().replace("UTC","GMT")` 

गुरु, 19 नवंबर 2015 16:30:18 के लिए तैयार है जीएमटी

के लिए सी #

DateTime DateCreated= DateTime.Parse(ol); 
1

आपको किसी भी रूपांतरण की आवश्यकता नहीं है: .NET MVC नियंत्रक में डिफ़ॉल्ट डेटटाइम मॉडलबिंडर जावास्क्रिप्ट दिनांक ऑब्जेक्ट के साथ ठीक काम करता है।

Moment.js

1) का उपयोग करना।नेट दिनांक समय -> जावास्क्रिप्ट दिनांक

var jsDate = moment(dotNetDateTime).toDate(); 

2) जावास्क्रिप्ट दिनांक -> नेट दिनांक समय

var dotNetDateTime = jsDate; 
संबंधित मुद्दे