2010-04-30 44 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();