11
votes

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 seulement l'année?

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


0 commentaires

5 Réponses :


24
votes

Vous pouvez utiliser Méthode DateTime.Parse pour analyser la chaîne à un valeur DateTime qui a un Propriété année :

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


0 commentaires

13
votes

Cela devrait fonctionner pour vous.

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


3 commentaires

Désolé, mais un tel constructeur de DateTime ne existe pas.


@Serge Vous semblez avoir raison. C'est ce que je reçois pour essayer de penser si tard et de ne pas confirmer avant de poster. : P


J'éviterais analyser sans spécifier une culture.



4
votes

Si le format de la chaîne de date est corrigé (DD / mm / aaaa), j'aimerais vous recommander d'utiliser DateTime.Parseexact Méthode .

Le code: xxx

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


0 commentaires

3
votes

Vous pouvez également utiliser regex strong> pour obtenir l'année forte> 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 commentaires

Cela correspond également aux 4 premiers chiffres de mon numéro de téléphone et, pour une raison quelconque, retourne l'année en tant que chaîne.


Certainement, mais si la question seulement au format de date, cela fonctionnerait.



2
votes

variante de DTB que j'utilise: xxx


0 commentaires