J'ai une chaîne du format suivant "ORDER20100322194007"
, où 20100322
est une date et 194007
est un temps. Comment analyser une chaîne et obtenir l'objet DateTime
contenu?
Commencera-t-il toujours par ORDER
?
string pattern = "'ORDER'yyyyMMddHHmmss";
DateTime dt;
if (DateTime.TryParseExact(text, pattern, CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dt))
{
// dt is the parsed value
}
else
{
// Invalid string
}
Si la chaîne non valide doit lever une exception, utilisez alors DateTime.ParseExact
au lieu de DateTime.TryParseExact
Si elle ne commence pas toujours par "ORDER", faites tout ce que vous devez pour obtenir uniquement la partie date et heure, et supprimez "'ORDER'" du modèle de format ci-dessus.
Vous pouvez utiliser la méthode DateTime.ParseExact pour spécifier le format à utiliser lors de l'analyse.
Si vous n'avez pas une structure fixe de votre chaîne, disons que l'ordre ne sera pas toujours là, vous pouvez utiliser regex pour séparer les nombres et les caractères, puis utiliser la fonction de conversion en datetime pour les nombres séparés.