【问题标题】:How to convert this string to datetime?如何将此字符串转换为日期时间?
【发布时间】:2013-04-19 07:42:48
【问题描述】:

如何将其转换为日期时间?

var datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)"

日期格式如"09/06/2011"。我不介意是服务器端还是客户端。

【问题讨论】:

  • @SonerGönül 在 jquery 中没有用于转换为日期时间的方法。我是这个领域的新手。

标签: c# jquery kendo-ui


【解决方案1】:

我认为.Net 框架没有提供任何内置方法来解析这种格式的日期。您可以从字符串中剥离时区的信息,然后像这样解析它:

var datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)";
DateTime dt = DateTime.ParseExact(datestring.Substring(0, 24),
                  "ddd MMM dd yyyy HH:mm:ss",
                  CultureInfo.InvariantCulture);

稍后您可以将其格式化为:

string formattedDate = dt.ToString("dd/MM/yyyy");

【讨论】:

    【解决方案2】:

    @Naidu,你可以自己做这个客户端。

    如果您在 kendo ui 中工作,则可以选择日期格式, 否则你可以使用普通的javascript

    在 kendoUI 中:

    var dateString = 'Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)';
    
    // Date Formating in Kendo
    alert(kendo.toString(new Date(dateString), 'dd/MM/yyyy'));
    

    在 javascript 中:

    //  Date Formating in Javascript
    var date = new Date(dateString);
    alert(date.getDate() + '/' + Number(date.getMonth() + 1) + '/' + date.getFullYear());
    

    两个输出都会按照您的要求给出结果(09/06/2011)。 你也可以得到'date with time'

    在此处参考 jsFiddle:http://jsfiddle.net/pTcJh/1/

    【讨论】:

      【解决方案3】:

      这将是一个机会:

      string day = datestring.SubString(8, 2);
      string month = datestring.SubString(4, 2);
      switch(month)
      {
          case "Jun":
              month = "06";
              break;
      }
      string year = datestring.SubString(11, 4);
      string date = day + "/" + month + "/" + year;
      

      【讨论】:

        【解决方案4】:

        你试过把这个字符串放入 new Date(dateString) 的构造函数中吗?

        对我有用

        new Date( datestring )
        

        【讨论】:

        • @Naidu 这段代码 new Date( datestring ) 返回给你什么?在此之后,您可以从日期中获取日、月和年并创建新的日期格式。
        • 我在 c# 中获取的不仅仅是日期字段
        • @Naidu 是的,你只会得到日期对象,你必须从中获取日、月和年,将它们连接起来以获得格式化的日期
        • Date date = new Date(datestring)是你说的吗
        • @Naidu 是的,首先你需要创建日期对象
        【解决方案5】:

        你可以拆分字符串,因为每个字符在字符串中都有固定的位置

        string splits[] = datestring.Split(' ');
        //switch for month "Jun" = 6
        string date = string.Format("{0}/{1}/{2}", splits[2], month, splits[3]);
        

        【讨论】:

          【解决方案6】:
          【解决方案7】:

          这就是我想出来的(使用 Linqpad):

          String datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)";
          var d = datestring.Split(new char[] {' '}, 5).Take(4);
          DateTime dt = DateTime.Parse(d.Aggregate((x, y) => x + " " + y));
          dt.Dump();
          

          结果:

          09.06.2011 00:00:00
          

          【讨论】:

            【解决方案8】:

            ,我相信.NET Framework中没有直接的方法可以解析这种字符串。

            这是一个肮脏的方式:)

            string datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)";
            string[] s1 = datestring.Split(new string[]{" "}, 6, StringSplitOptions.RemoveEmptyEntries);
            
            string date = "";
            for (int i = 0; i < 5; i++)
            {
                 date = date + s1[i] + " ";
            }
            date = date.TrimEnd();
            
            DateTime yourdatetime = DateTime.ParseExact(date, "ddd MMM dd yyyy HH:mm:ss", CultureInfo.InvariantCulture);
            Console.WriteLine(yourdatetime);
            

            输出会是这样的;

            6/9/2011 12:00:00 AM
            

            这是DEMO

            您可以从Custom Date and Time Format Strings查看更多自定义日期格式

            【讨论】:

              【解决方案9】:

              简短而简单,这应该可以解决问题:

              更新:从头开始,你甚至不需要我之前的格式提供程序。这似乎工作正常:

              var datestring = "Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)";
              var date = DateTime.Parse(new string(datestring.Take(24).ToArray()));
              
              date.ToString("dd/MM/yyyy");
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2013-02-13
                • 1970-01-01
                • 2012-10-18
                • 1970-01-01
                • 1970-01-01
                • 2014-03-18
                • 1970-01-01
                相关资源
                最近更新 更多