【问题标题】:Split the date in c#在c#中拆分日期
【发布时间】:2010-04-30 05:22:46
【问题描述】:

前 您在文本框中以各种形式输入日期

  1. 2010 年 8 月 12 日
  2. 2010 年 8 月 12 日
  3. 2010/12/8 月

输出是 三个文本框首先是天秀= 12 第二个文本框是 Months show=augest 第三个文本框是 Year show= 2010

【问题讨论】:

标签: c#


【解决方案1】:

要针对三种预期格式解析/验证,您可以使用如下所示的内容。给定模式,一旦你知道它是有效的,你就可以使用string.Split 来获取第一部分;如果您需要更优雅的东西,您可以依次对每个模式使用 TryParseExact 并提取所需的部分(或重新格式化)。

    string s1 = "12/August/2010",
           s2 = "August/12/2010",
           s3 = "2010/12/August";

    string[] formats = { "dd/MMMM/yyyy", "MMMM/dd/yyyy", "yyyy/dd/MMMM" };
    DateTime d1 = DateTime.ParseExact(s1, formats,
                        CultureInfo.CurrentCulture, DateTimeStyles.None),
             d2 = DateTime.ParseExact(s2, formats,
                        CultureInfo.CurrentCulture, DateTimeStyles.None),
             d3 = DateTime.ParseExact(s3, formats,
                        CultureInfo.CurrentCulture, DateTimeStyles.None);

【讨论】:

    【解决方案2】:

    使用DateTime.Parse(String, IFormatProvider)DateTime.ParseExact 将字符串转换为日期时间。

    然后可以使用对应的properties提取日、月、年。

    【讨论】:

      【解决方案3】:

      使用DateTime.Parse(s)。见MSDN

      然后您可以获取 DateTime 结构的各个部分。

      例如

      DateTime date = DateTime.Parse("some input date string");
      string day = DateTime.Day.ToString();
      string month = DateTime.Month.ToString();
      string year = DateTime.Year.ToString();
      

      【讨论】:

        【解决方案4】:
        date dt date.Parse(txtBox.text);
        
        txtBox1.Text = dt.Day.ToString();
        txtBox2.Text = dt.ToString("MMM");
        txtBox3.Text = dt.Year.ToString();
        

        date.Parse 可能会抛出取决于你给它的字符串,但你可以通过尝试使用不同的文化来解析它来回退。

        编辑:添加了一个 M

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-15
          • 2021-11-27
          • 1970-01-01
          • 2020-10-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多