Pourquoi ne pas DateTime.ParseExact analyser UTC format avec la fuite Z?
Un autre ParseExact problème. Je suis en train d'analyser une chaîne au format UTC datetime au format de:
"YYYY-MM-DDThh:mm:ss.ssZ"
qui est en UTC format, avec la fuite Z. je ne peux pas analyser exacte pour une raison quelconque. J'ai essayé le "u", "s", "o", les chaînes de format personnalisées, ainsi que de plusieurs DateTimeStyles et bien que manuscrite. La culture est invariante.
Pour une raison quelconque, il n'aime pas le Z, ce qui indique qu'il est UTC chaîne. Lorsque je le supprime, analyse. Je le ferais avec plaisir, avec une certaine satisfaction, se débarrasser de l'arrière Z comme je sais qu'ils sont UTC datetime cordes, mais je ne peux pas. Des idées?
OriginalL'auteur scope_creep | 2011-07-08
Vous devez vous connecter pour publier un commentaire.
Les chaînes de format que vous avez mentionnés sont les chaînes de format standard. Vous devriez probablement utiliser un chaîne de format personnalisée, comme ceci:
Si vous ne mettez pas
ToUniversalTime()
à la fin, le résultat sera convertie en fonction de votre fuseau horaire local.oui, c'est fait. Mais le résultat de la
ParseExact()
ci-dessus est2.3.2011 21:15:19
pour moi (UTC+1), avecDateTimeKind.Local
. Pour obtenir l'heure UTC, vous devez appelerToUniversalTime()
.Qui fonctionne. Merci @Svick.
Je préfère le à l'aide de la surcharge qui prend
DateTimeStyles
surToUniversal
. Je ne suis pas sûr siToUniversal
fonctionne correctement autour de commutation de l'heure d'été.Une meilleure solution serait d'utiliser
DateTimeStyles.RoundTripKind
. Cela préserve laKind
de la propriété, de sorte que vous n'avez pas besoin d'appeler ToUniversalTime();OriginalL'auteur svick