正在分析日期字符串以获取年份

本文关键字:获取 取年份 字符串 日期 | 更新日期: 2023-09-27 18:24:14

我有一个字符串变量,它存储的日期类似于"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();