将javascript gettime()转换为c#datetime

时间:2012-09-02 11:06:44

标签: c# javascript datetime datetime-conversion

我使用telerik raddatepicker控件来选择日期。

我从控件中获取日期值,将其转换为javascript Date对象,然后使用getTime获取总毫秒数:

            var FromDate = $find("<%=fromDate.ClientID%>").get_dateInput().get_displayValue();
            var FromDateMill = new Date(FromDate).getTime();

我选择的日期是6/4/2012(我们)。 当我打印新日期(FromDate)的结果时,我得到了我选择的正确日期。

在服务器端,我尝试使用从javascript获得的毫秒来获取datetime对象,因此我使用此代码:

DateTime seventies = new DateTime(1970, 1, 1);
DateTime fromDate = seventies.AddMilliseconds(Convert.ToDouble(Reader["FromDateMill"]));

但是当我从日期打印时,我得到6/3/2012 9:00:00 AM(前一天...)。 我查看并看到转换为toDouble返回正确的毫秒数,这是我在javascript中获得的。

有谁知道我做错了什么?

谢谢, INBAL。

1 个答案:

答案 0 :(得分:2)

getTime方法获得的值不是来自本地时间,而是来自世界时。将这些毫秒添加到1970-1-1时,您将获得通用时间,而不是当地时间。

使用ToLocal方法获取本地时间的DateTime值:

DateTime fromDate =
  seventies.AddMilliseconds(Convert.ToDouble(Reader["FromDateMill"])).ToLocal();