C# 解析日期字符串以获取年份
我有一个字符串变量,它存储一个类似“05/11/2010”的日期 如何解析字符串以仅获取年份 因此,我将使用另一个年份变量,如C# 解析日期字符串以获取年份,c#,date,C#,Date,我有一个字符串变量,它存储一个类似“05/11/2010”的日期 如何解析字符串以仅获取年份 因此,我将使用另一个年份变量,如year=2010,您可以使用将字符串解析为具有以下值的值: 根据操作系统的区域性设置,您可能需要提供: 这应该对你有用 string myDate = "05/11/2010"; DateTime date = Convert.ToDateTime(myDate); int year = date.Year; 如果日期字符串格式是固定的(dd/MM/yyyy),我建
year=2010
,您可以使用将字符串解析为具有以下值的值:
根据操作系统的区域性设置,您可能需要提供:
这应该对你有用
string myDate = "05/11/2010";
DateTime date = Convert.ToDateTime(myDate);
int year = date.Year;
如果日期字符串格式是固定的(dd/MM/yyyy),我建议您使用 守则:
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);
此外,我认为它可能比解析快一点,因为解析方法尝试解析日期-时间字符串的几种表示形式。您还可以使用Regex获取字符串“05/11/2010”中的年份
我使用的dtb的变体:
string Year = DateTime.Parse(DateTime.Now.ToString()).Year.ToString();
很抱歉,
DateTime
类的构造函数不存在。@Serge您似乎是对的。这就是我这么晚才开始思考,在发帖前没有确认的原因PI会避免在不指定区域性的情况下进行解析。这也会匹配我电话号码的前4位数字,出于某种原因,会以字符串形式返回年份。这是肯定的,但如果问题仅以日期格式出现,它会起作用。
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);
public string getYear(string str)
{
return (string)Regex.Match(str, @"\d{4}").Value;
}
var result = getYear("05/11/2010");
2010
string Year = DateTime.Parse(DateTime.Now.ToString()).Year.ToString();