11 votes

Conversion du format de chaîne "yyyy-MM-ddTHH:mm:ss.fffZ" en DateTime

Je sais que cette question a été posée de plusieurs manières différentes. Je les ai toutes examinées et aucune des solutions ne semble me convenir. J'espère donc que vous pourrez peut-être me donner un petit coup de main.

La chaîne d'entrée est : "2000-01-01T12:00:000Z". Je dois prendre cette chaîne d'entrée et la convertir en DateTime pour qu'elle puisse être stockée dans la base de données.

J'ai utilisé ParseExact, mais je continue à obtenir l'exception de la chaîne de date non reconnue. Où est-ce que je me trompe ?

inValue.LatestDepartTime = "2000-01-01T12:00:000Z";
DateTime _latestDepartTime = DateTime.ParseExact(inValue.LatestDepartTime, "yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture);

7voto

SLaks Points 391154

Votre chaîne de format doit exact correspondent à l'entrée.

Cela inclut le littéral T y Z des personnages.

7voto

Mohammad f Points 61

Utilisez yyyy-MM-dd'T'HH:mm:ss.fff'Z'

Le code est :

public DateTime convertIsoToDateTime (string iso)
{
    return DateTime.ParseExact(iso, "yyyy-MM-dd'T'HH:mm:ss.fff'Z'", CultureInfo.InvariantCulture);
}

4voto

dan04 Points 33306

Vous devez inclure \\T y \\Z dans votre chaîne de format pour correspondre aux littéraux T y Z .

2voto

Lucero Points 38928

Vous ne spécifiez pas le T dans le motif.

Ceci étant dit, vous pouvez jeter un coup d'œil à la page XmlConvert qui fournit les méthodes de conversion de ce format.

1voto

inciph Points 11

Vous devez mettre des guillemets simples autour du T et du Z :

DateTime parsedDateTime;
DateTime.TryParseExact(obj, "yyyy-MM-dd'T'HH:mm:ss'Z'", null, System.Globalization.DateTimeStyles.None, out parsedDateTime);
return parsedDateTime;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X