将JavaScript日期转换为.NET日期的最佳方式

时间:2011-04-02 06:18:04

标签: c# javascript .net

我在JavaScript中有一个日期,它的价值就是这样的

Fri Apr 01 2011 05:00:00 GMT + 0530(India Standard Time){}

现在将日期转换为.NET日期的最佳方法是什么。请注意,我的客户端用户可能是世界各地的用户。我将从那里获得日期,现在我需要将其转换为.NET日期。你能救我吗?

5 个答案:

答案 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);