【问题标题】:Convert javascript gettime() to c# datetime将 javascript gettime() 转换为 c# 日期时间
【发布时间】:2012-09-02 11:06:43
【问题描述】:

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

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

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

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

在服务器端,我尝试使用从 javascript 获得的毫秒数获取日期时间对象,因此我使用以下代码:

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

但是当我打印 fromDate 时,我得到 6/3/2012 9:00:00 AM(前一天......)。 我检查并看到转换为双精度返回正确的毫秒数,正如我在 javascript 中得到的那样。

有人知道我做错了什么吗?

谢谢, 英巴尔。

【问题讨论】:

    标签: c# javascript datetime datetime-conversion


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 2023-03-26
      • 2012-05-28
      • 1970-01-01
      相关资源
      最近更新 更多