【问题标题】:How can I convert this "Tuesday, March 30, 2010 10:45 AM" string to a DateTime practically?实际上,如何将此“2010 年 3 月 30 日星期二 10:45 AM”字符串转换为 DateTime?
【发布时间】:2010-03-25 16:32:37
【问题描述】:

嗯,

这是我从网络服务获得的字符串:

“2010 年 3 月 30 日,星期二上午 10:45”

我需要将其转换为 DateTime。

您知道实现此目的的简单方法吗?

谢谢,

【问题讨论】:

    标签: c# string datetime


    【解决方案1】:
        string strDateTime = "Tuesday, March 30, 2010 10:45 AM"; 
    
        DateTime myDateTime = DateTime.Parse(strDateTime);
    

    【讨论】:

      【解决方案2】:

      这是“F”格式。

      应该很容易被解析

      DateTime.Parse( s );
      

      或按 DateTime.ParseExact(string s, string format, IFormatProvider provider);

      作为

      DateTime.ParseExact( s, "F", CultureInfo.InvariantCulture );
      

      【讨论】:

      • +1 表示 ParseExact 和 CultureInfo,对于这样的格式,我会说这是最正确的答案。
      • 弄清楚什么是 FormatProvider 是刚开始时最困难的事情之一。
      【解决方案3】:

      没有那么简单但更安全。

      DateTime dts;
          string strDateTime = "Tuesday, March 30, 2010 10:45 AM";
      
      if(!DateTime.tryParse(strDateTime, out dts))
           Console.WriteLine("not a date!");
      

      【讨论】:

        【解决方案4】:

        DateTime.ParseDateTime.ParseExact 应该可以满足您的需求。

        【讨论】:

          【解决方案5】:
          DateTime.Parse("Tuesday, March 30, 2010 10:45 AM")
          

          【讨论】:

            【解决方案6】:

            根据您的文化设置,解析可能会或可能不会起作用。

            我建议使用 InvariantCulture,除非您可以确定您的计算机文化设置为有效的文化(“en”)而不是失败的文化(“ar”)。

            DateTime.Parse("Tuesday, March 30, 2010 10:45 AM", CultureInfo.InvariantCulture )
            

            【讨论】:

              【解决方案7】:
              猜你喜欢
              • 2020-09-30
              • 2020-12-07
              • 2011-05-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多