我在JavaScript中有一个日期,它的价值就是这样的
Fri Apr 01 2011 05:00:00 GMT + 0530(India Standard Time){}
现在将日期转换为.NET日期的最佳方法是什么。请注意,我的客户端用户可能是世界各地的用户。我将从那里获得日期,现在我需要将其转换为.NET日期。你能救我吗?
答案 0 :(得分:25)
此处回答的问题可能重复: Javascript date to C# via Ajax
如果您想要当地时间,就像您在问题中显示的那样,以下情况就可以了。
DateTime.ParseExact(dateString.Substring(0,24),
"ddd MMM d yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
如果您正在寻找GMT时间,在将其发送到服务器之前在浏览器中使用Javascript dateObject.toUTCString()
,就可以了。
答案 1 :(得分:13)
从客户端将JavaScript转换为UTCString:
var testDate = new Date().toUTCString();
从C#代码中解析它(你可以通过webservice调用获取js日期)。
DateTime date = DateTime.Parse(testDate);
答案 2 :(得分:0)
您可以在发送之前将时间转换为字符串,在.net中,您应该使用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 但是你应该向服务器提供正确形式的字符串
答案 3 :(得分:0)
好的,请尝试这个简单的函数,它将转换你的Unix时间戳的“双重”表示
public static DateTime ConvertFromUnixTimestamp(double timestamp)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return origin.AddMilliseconds(timestamp);
}
答案 4 :(得分:0)
扩展@ Naraen的回答,我的javascript日期采用以下格式:
Thu Jun 01 2017 04:00:00 GMT-0400 (Eastern Standard Time)
要求转换在C#中为我工作的那一天(dd
)需要两个小写d。请参阅@ Naraen的代码更新:
DateTime.ParseExact(dateString.Substring(0,24),
"ddd MMM dd yyyy HH:mm:ss",
CultureInfo.InvariantCulture);