Vous pouvez utiliser DateTime.ParseExact ou DateTimeOffset.ParseExact pour spécifier le format de la chaîne de date. Bien que, je n'étais pas capable de comprendre rapidement comment faire correspondre le spécificateur de fuseau horaire (c'est-à-dire GMT). Un aperçu de quelques résultats Google montre que la plupart des personnes qui tentent de résoudre ce problème le font de manière heuristique - en faisant une liste de tous les fuseaux horaires et des décalages puis en analysant la chaîne et en remplaçant le spécificateur de fuseau horaire par le décalage +/- , ou une autre sorte d'approche hackish. Bien que, aucune de ces solutions ne proviennent de StackOverflow, alors qui sait comment ils sont bons.
Voici un court exemple que j'ai écrit, avec le "GMT" dépouillé de la chaîne de date essayant d'être converti. Si vous pouvez remplacer le fuseau horaire par le décalage, ajoutez "zzz" à la chaîne de format. Pour l'analyse d'autres formats, voici la page MSDN Custom Date and Time Format Strings qui les répertorie tous.
// Parse date and time with custom specifier.
string dateString = "Tue Jan 20 20:47:43 2009";
string format = "ddd MMM dd HH:mm:ss yyyy";
DateTime result;
System.Globalization.CultureInfo provider = System.Globalization.CultureInfo.InvariantCulture;
try
{
result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException)
{
Console.WriteLine("{0} is not in the correct format.", dateString);
}
@jstawski: vous avez C# 3.0. Il n'y a pas de C# 3.5. –
Oui, vous avez raison. Se est confondu avec .net 3.5 –