web-dev-qa-db-fra.com

Analyser une chaîne de date pour obtenir l'année

J'ai une variable de chaîne qui stocke une date comme "05/11/2010".

Comment puis-je analyser la chaîne pour obtenir uniquement l'année?

Je vais donc avoir une autre variable d'année comme year = 2010.

9
user1204195

Vous pouvez utiliser la méthode DateTime.Parse pour analyser la chaîne en un DateTime valeur qui a une propriété Year :

var result = DateTime.Parse("05/11/2010").Year;
// result == 2010

Selon les paramètres de culture du système d'exploitation, vous devrez peut-être fournir un CultureInfo :

var result = DateTime.Parse("05/11/2010", new CultureInfo("en-US")).Year;
// result == 2010
21
dtb

Cela devrait fonctionner pour vous.

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

Si le format de la chaîne de date est fixe (jj/mm/aaaa), je vous recommande d'utiliser DateTime.ParseExact, méthode .

Le code:

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);

De plus, je pense que cela pourrait être un peu plus rapide que Méthode DateTime.Parse , car la méthode Parse tente d'analyser plusieurs représentations de la chaîne date-heure.

4
Sergey Brunov

vous pourriez aussi utiliser Regex pour obtenir le année dans la chaîne "05/11/2010"

public string getYear(string str)
{
    return (string)Regex.Match(str, @"\d{4}").Value;
}

var result = getYear("05/11/2010");

2010
2
Ramgy Borja

Variante de dtb que j'utilise:

string Year = DateTime.Parse(DateTime.Now.ToString()).Year.ToString();
1
John Pittaway