Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 解析日期字符串以获取年份_C#_Date - Fatal编程技术网

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

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),我建

我有一个字符串变量,它存储一个类似“05/11/2010”的日期

如何解析字符串以仅获取年份

因此,我将使用另一个年份变量,如
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();