解析日期字符串以获得年份
您可以使用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
这应该适合你。
string myDate = "05/11/2010";
DateTime date = Convert.ToDateTime(myDate);
int year = date.Year;
如果日期字符串格式是固定的(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方法试图解析时间串的几次交涉。
,你也可以使用正则表达式到得到年字符串 “05/11/2010” DTB的
public string getYear(string str)
{
return (string)Regex.Match(str, @"\d{4}").Value;
}
var result = getYear("05/11/2010");
2010
这也匹配我的电话号码的前4位数字,出于某种原因以字符串形式返回年份。 – john 2017-08-01 01:31:45
肯定,但如果问题只在日期格式它会起作用。 – 2017-08-01 01:34:14
变,我使用:
string Year = DateTime.Parse(DateTime.Now.ToString()).Year.ToString();
抱歉,这样的'DateTime'类的构造函数不存在。 – 2012-02-12 11:52:34
@Serge你看起来是对的。多数民众赞成在试图想这么晚,并没有在发布前确认。 :P – 2012-02-12 13:49:17
我会避免解析没有指定文化。 – CodesInChaos 2012-02-12 13:57:26