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
.
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
Cela devrait fonctionner pour vous.
string myDate = "05/11/2010";
DateTime date = Convert.ToDateTime(myDate);
int year = date.Year;
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.
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
Variante de dtb que j'utilise:
string Year = DateTime.Parse(DateTime.Now.ToString()).Year.ToString();