将JavaScript日期转换为.NET日期时间
我从JavaScript向MVC中的控制器获取了一个日期值,我想将其解析为.NET格式的DateTime,但它给了我一个错误,例如: 该字符串未被识别为有效的日期时间 JavaScript日期的格式为:将JavaScript日期转换为.NET日期时间,javascript,.net,date,datetime,Javascript,.net,Date,Datetime,我从JavaScript向MVC中的控制器获取了一个日期值,我想将其解析为.NET格式的DateTime,但它给了我一个错误,例如: 该字符串未被识别为有效的日期时间 JavaScript日期的格式为: "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", C
"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);
谁能给我一个示例代码?谢谢 与其解析文本表示,不如从时间戳构造
DateTime
。要从JS日期获取时间戳,请执行以下操作:
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
以下内容与.NET MVC控制器中的默认DateTime modelbinder解析良好:
var myJsDate = new Date();
var myDotNetDate = myJsDate.toISOString();
以下是我所做的事情和原因。我希望这有帮助
JS Datevar d=new Date()
返回时间:2015年11月19日星期四08:30:18太平洋标准时间
C#不喜欢此格式,因此将其转换为UTC:
var dc = d.toUTCString()
返回时间:2015年11月19日星期四16:30:18 UTC
UTC–世界时间标准不是时区,因此您需要将其更改为时区
var cr = dc.replace("UTC","GMT")
现在它准备好了
2015年11月19日星期四格林尼治标准时间16:30:18
一行
var ol = d.toUTCString().replace("UTC","GMT")`
2015年11月19日星期四格林尼治标准时间16:30:18
对于C#
您不需要任何转换:.NETMVC控制器中的默认DateTime modelbinder可以很好地与JavaScript日期对象配合使用
使用
1) .NET DateTime->JavaScript Date
var jsDate = moment(dotNetDateTime).toDate();
var dotNetDateTime = jsDate;
2) JavaScript日期->.NET日期时间
var jsDate = moment(dotNetDateTime).toDate();
var dotNetDateTime = jsDate;
从.NET4.6开始,使用DateTimeOffset.fromUnixtimeMissions(毫秒).DateTime
完美的解决方案!