将 JavaScript Date 转换为 .NET DateTime

Convert JavaScript Date to .NET DateTime

本文关键字:NET DateTime 转换 JavaScript Date      更新时间:2023-09-26

我从JavaScript获取到MVC中的控制器的Date值,我想将其解析为.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", CultureInfo.InvariantCulture);

任何人都可以给我一个示例代码吗?谢谢!

以下内容使用 .NET MVC 控制器中的默认 DateTime 模型绑定器进行很好的分析:

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

与其解析文本表示,不如从时间戳构造DateTime更健壮。要从 JS 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

这是我所做的以及为什么。我希望这有帮助。

JS日期var d = new Date()

返回时间:2015 年 11 月 19 日星期四 08:30:18 PST

C# 不喜欢这种格式,因此请将其转换为 UTC:

var dc = d.toUTCString()

返回时间:2015 年 11 月 19 日星期四 16:30:18 UTC

UTC – 世界时间标准不是时区,因此您需要将其更改为时区

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

现在它已准备好

周四, 19 十一月 2015 16:30:18 GMT

在一行中

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

周四, 19 十一月 2015 16:30:18 GMT

对于 C#

DateTime DateCreated= DateTime.Parse(ol);

您不需要任何转换:.NET MVC 控制器中的默认 DateTime 模型绑定器适用于 JavaScript Date 对象。

使用时刻.js

1( .NET DateTime -> JavaScript Date

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

2( JavaScript Date -> .NET DateTime

var dotNetDateTime = jsDate;