【问题标题】:Best way to convert JavaScript date to .NET date将 JavaScript 日期转换为 .NET 日期的最佳方法
【发布时间】:2023-03-15 22:35:01
【问题描述】:

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

2011 年 4 月 1 日星期五 05:00:00 GMT+0530(印度标准时间){}

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

【问题讨论】:

    标签: c# javascript .net


    【解决方案1】:

    此处回答的问题可能重复: Javascript date to C# via Ajax

    如果你想要当地时间,就像你在你的问题中展示的那样,下面会做。

    DateTime.ParseExact(dateString.Substring(0,24),
                                  "ddd MMM d yyyy HH:mm:ss",
                                  CultureInfo.InvariantCulture);
    

    如果您正在寻找格林威治标准时间,在将其发送到服务器之前,在浏览器中使用 Javascript 执行 dateObject.toUTCString() 即可。

    【讨论】:

    • +1 nice .. 我正在寻找确切的格式字符串,但后来放弃了这个想法并选择了 AddMilliseconds。 :)
    • @Rocky - 编辑关于如何让你有工作的答案。
    • @shekhar - 好奇!您是如何使用 AddMilliseconds 实现的?
    • .. 它在我的回答中.. 但它不是文化不变的.. 并且容易出现时区错误:(
    • 以上不太对。应该是:dateString.Substring(0,24)
    【解决方案2】:

    从客户端将 JavaScript 转换为 UTCString:

    var testDate = new Date().toUTCString();
    

    从 C# 代码中解析(可以通过 webservice 调用获取 js 日期)。

    DateTime date = DateTime.Parse(testDate);
    

    【讨论】:

      【解决方案3】:

      您可以在发送之前将时间转换为字符串,并且在 .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 但是您应该向服务器提供正确形式的字符串

      【讨论】:

        【解决方案4】:

        好的,试试这个简单的函数,它将转换你的 Unix 时间戳的“双”表示

        public static DateTime ConvertFromUnixTimestamp(double timestamp)
        {
            DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
            return origin.AddMilliseconds(timestamp); 
        }
        

        【讨论】:

          【解决方案5】:

          扩展@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);
          

          【讨论】:

            猜你喜欢
            • 2012-05-28
            • 1970-01-01
            • 2017-03-01
            • 2013-02-09
            • 2010-12-18
            • 2021-06-07
            • 1970-01-01
            • 2013-03-17
            • 1970-01-01
            相关资源
            最近更新 更多