解析日期字符串以获取年份

我有一个字符串变量存储日期,如“05/11/2010”。

如何解析字符串只获得一年?

所以我将有另一年变量,如year = 2010

您可以使用DateTime.Parse方法将字符串解析为具有Year属性的DateTime值:

 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 

这应该适合你。

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

如果日期字符串格式是固定的(dd / MM / yyyy),我建议您使用DateTime.ParseExact方法 。

代码:

 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方法快一点,因为Parse方法尝试解析日期时间字符串的几种表示。

你也可以使用Regex来获得字符串“05/11/2010”中的年份

 public string getYear(string str) { return (string)Regex.Match(str, @"\d{4}").Value; } var result = getYear("05/11/2010"); 2010 

我使用的dtb的变体:

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