Question

J'ai une chaîne qui représente une valeur de DataTime, et je veux entraînement quel format chaîne a été utilisé pour créer la chaîne.

Par exemple
- Compte tenu de "mercredi 27 janvier 2010" Je pense "dddd dd MMM aaaa"
- Compte tenu de "2010 01 27" Je pense "aaaa MM dd"

On suppose que la date est proche de DateTime.Now et se rapporte à la CurrentCulture. Donc, étant donné que nous avons en-GB culture
- GIVEN "01 01 2010" Je pense "dd MM yyyy"

Y at-il un moyen simple de le faire?

Était-ce utile?

La solution

vous pouvez partager sur les espaces pour obtenir un tableau de chaînes alors vous pouvez tester les éléments du tableau par rapport aux valeurs connues pour essayer de deviner le format

par exemple. si vous recherchez « mercredi » si vous le trouvez supposons « dddd »

si un nombre à quatre chiffres supposent aaaa

jours et mois pourrait être un problème, vous pouvez tester pour> 12 pour les jours, mais c'est assez mauvais

vous pourriez peut-être déduire le format en utilisant des espaces partagé puis DateTime.Parse sur le Orignal et le test sur un format (en utilisant le format inférer) version de la date analysable pour l'égalité

Autres conseils

La chose la plus simple à faire est de regarder de référence datetime le formatage des chaînes et les travaillant.

Vous pourrez peut-être utiliser la réflexion pour obtenir, ou utiliser désassembleur (comme

scroll top