2015-07-15 1 views
1

Im incapable d'utiliser la fonction ParseExact pour transformer la chaîne suivante à ce jourFormat DateTime.ParseExact pour date personnalisée

Celui-ci fonctionne:

Dim fechaS = "Feb 16 23:13:53.241 2015" 
fecha1 = DateTime.ParseExact(fechaS, "MMM dd HH:mm:ss.fff yyyy", Nothing) 

Mais échoue, quand j'ajouter quelques options supplémentaires:

Dim fechaS = "Mon 16 23:13:53.241 UTC 2015" 
fecha1 = DateTime.ParseExact(fechaS, "ddd MMM dd HH:mm:ss.fff z yyyy", Nothing) 

Répondre

2

Votre deuxième exemple a trois problèmes avec elle:

  1. La chaîne datetime n'est pas au même format que la date
  2. La chaîne de date n'a pas de mois, donc elle ne peut pas être analysée dans une date sans le savoir.
  3. Il n'y a pas de spécificateur datetime valide pour correspondre à "UTC". Pour ajuster les fuseaux horaires, vous devez fournir un décalage de fuseau horaire (c'est ce que le z signifie). Vous pouvez à cela en remplaçant UTC avec +0

Ce ne

Dim fechaS = "Mon 16 23:13:53.241 UTC 2015" 
fecha1 = DateTime.ParseExact(fechaS, "ddd MMM dd HH:mm:ss.fff z yyyy", Nothing) 

Cela fonctionne

Dim fechaS = "Mon Feb 16 23:13:53.241 UTC 2015" 
fecha1 = DateTime.ParseExact(fechaS.Replace("UTC", "+0"), "ddd MMM dd HH:mm:ss.fff z yyyy", Nothing) 

Plus d'infos ici sur les formats de date et heure autorisés: Custom DateTime Format Strings