将JavaScript日期转换为.NET DateTime

Chr*_*ius 9 .net javascript datetime date

我从JavaScript获取一个Date值到MVC中的控制器,我想将它解析为.NET格式DateTime但它给我一个错误,如:

该字符串未被识别为有效的DateTime.

JavaScript日期的格式为:

"Wed May 23 2012 01:40:00 GMT+0200 (W. Europe Daylight Time)"
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它不起作用:

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

有人可以给我一个示例代码吗?谢谢!

Mar*_*lin 17

以下解析与.NET MVC控制器中的默认DateTime模型绑定器:

var myJsDate = new Date();
var myDotNetDate = myJsDate.toISOString();
Run Code Online (Sandbox Code Playgroud)


Jon*_*Jon 6

而不是解析文本表示,DateTime而是从时间戳构造a更健壮.要从JS获取时间戳Date:

var msec = date.getTime();
Run Code Online (Sandbox Code Playgroud)

并将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
Run Code Online (Sandbox Code Playgroud)

  • 从 .NET 4.6 使用 ```DateTimeOffset.FromUnixTimeMilliseconds(msec).DateTime``` (2认同)