2010-04-30 64 views
2

对于防爆 您日期在各种形式的文本框中输入日期拆分在C#

  1. 12 /奥格斯特/ 2010
  2. 奥格斯特/ 12/2010
  3. 2010/12 /奥格斯特

和输出是 三个文本框首先是日期显示= 12 文本框第二个是显示月份= augest 文本框第三个是显示= 2010

+1

或尝试http://stackoverflow.com/search?q=datetime.parse :) – 2010-04-30 05:36:17

回答

5

要解析/验证三种预期格式,可以使用类似下面的格式。鉴于这种模式,一旦你知道它是有效的,你可以使用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); 
0
date dt date.Parse(txtBox.text); 

txtBox1.Text = dt.Day.ToString(); 
txtBox2.Text = dt.ToString("MMM"); 
txtBox3.Text = dt.Year.ToString(); 

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

编辑:增加了一个M

0

使用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();