2012-02-12 39 views

回答

19

您可以使用DateTime.Parse Method來分析字符串到DateTime值具有Year Property

var result = DateTime.Parse("05/11/2010").Year; 
// result == 2010 

根據操作系統的區域性設置,您可能需要提供一個CultureInfo

var result = DateTime.Parse("05/11/2010", new CultureInfo("en-US")).Year; 
// result == 2010 
9

這應該適合你。

string myDate = "05/11/2010"; 
DateTime date = Convert.ToDateTime(myDate); 
int year = date.Year; 
+0

抱歉,這樣的'DateTime'類的構造函數不存在。 – 2012-02-12 11:52:34

+0

@Serge你看起來是對的。多數民衆贊成在試圖想這麼晚,並沒有在發佈前確認。 :P – 2012-02-12 13:49:17

+2

我會避免解析沒有指定文化。 – CodesInChaos 2012-02-12 13:57:26

4

如果日期字符串格式是固定的(DD/MM/YYYY),我想你使用DateTime.ParseExact Method推薦。

代碼:

const string dateString = "12/02/2012"; 
CultureInfo provider = CultureInfo.InvariantCulture; 
// Use the invariant culture for the provider parameter, 
// because of custom format pattern. 
DateTime dateTime = DateTime.ParseExact(dateString, "dd/MM/yyyy", provider); 
Console.WriteLine(dateTime); 

此外,我認爲這可能是一點點快於DateTime.Parse Method,因爲Parse方法試圖解析時間串的幾次交涉。

2

,你也可以使用正則表達式得到字符串 「05/11/2010」 DTB的

public string getYear(string str) 
{ 
    return (string)Regex.Match(str, @"\d{4}").Value; 
} 

var result = getYear("05/11/2010"); 

2010 
+1

這也匹配我的電話號碼的前4位數字,出於某種原因以字符串形式返回年份。 – john 2017-08-01 01:31:45

+2

肯定,但如果問題只在日期格式它會起作用。 – 2017-08-01 01:34:14

0

變,我使用:

string Year = DateTime.Parse(DateTime.Now.ToString()).Year.ToString();