【发布时间】:2023-03-15 22:35:01
【问题描述】:
我在 JavaScript 中有一个日期,它的值是这样来的
2011 年 4 月 1 日星期五 05:00:00 GMT+0530(印度标准时间){}
现在将日期转换为 .NET 日期的最佳方法是什么。请注意,我的客户端用户可以在世界各地。我将从那里得到日期,现在我需要将其转换为 .NET 日期。你能帮我吗?
【问题讨论】:
标签: c# javascript .net
我在 JavaScript 中有一个日期,它的值是这样来的
2011 年 4 月 1 日星期五 05:00:00 GMT+0530(印度标准时间){}
现在将日期转换为 .NET 日期的最佳方法是什么。请注意,我的客户端用户可以在世界各地。我将从那里得到日期,现在我需要将其转换为 .NET 日期。你能帮我吗?
【问题讨论】:
标签: c# javascript .net
此处回答的问题可能重复: Javascript date to C# via Ajax
如果你想要当地时间,就像你在你的问题中展示的那样,下面会做。
DateTime.ParseExact(dateString.Substring(0,24),
"ddd MMM d yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
如果您正在寻找格林威治标准时间,在将其发送到服务器之前,在浏览器中使用 Javascript 执行 dateObject.toUTCString() 即可。
【讨论】:
从客户端将 JavaScript 转换为 UTCString:
var testDate = new Date().toUTCString();
从 C# 代码中解析(可以通过 webservice 调用获取 js 日期)。
DateTime date = DateTime.Parse(testDate);
【讨论】:
您可以在发送之前将时间转换为字符串,并且在 .net 中,您应该使用 datetime 构造函数之一将字符串转换为 datetime。 日期时间 .net -> http://msdn.microsoft.com/en-us/library/system.datetime(v=VS.90).aspx 您还可以使用 DateTime.Parse 方法 -> http://msdn.microsoft.com/en-us/library/ms973825.aspx 但是您应该向服务器提供正确形式的字符串
【讨论】:
好的,试试这个简单的函数,它将转换你的 Unix 时间戳的“双”表示
public static DateTime ConvertFromUnixTimestamp(double timestamp)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return origin.AddMilliseconds(timestamp);
}
【讨论】:
扩展@Naraen 的回答,我的 javascript 日期采用以下格式:
Thu Jun 01 2017 04:00:00 GMT-0400 (Eastern Standard Time)
当天需要两个小写的 d (dd) 才能在 C# 中为我工作。查看@Naraen 代码的更新:
DateTime.ParseExact(dateString.Substring(0,24),
"ddd MMM dd yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
【讨论】: