Connaître la Date format de l'heure de chaîne de date en c#
Je suis de faire une demande. L'application utilise le format de date comme
"2012-11-21 15:22:35"
.
Je sais déjà que le format est "yyyy-MM-dd HH:mm:ss"
. Mais comment puis-je trouver par programmation de la date & format de l'heure d'un arbitraire de la chaîne d'entrée? Est-il possible de faire cela?
- Si je comprends bien la question, alors aucune façon. Parce que vous ne pouvez pas les traiter exactement à quelle date est "2012-11-12", 11 décembre ou du 12 novembre.
- Puisque c'est une chaîne, il n'a pas intégré d'informations sur ce qu'il est. Donc, même le fait que cette chaîne consiste en date heure est votre connaissance préalable. Donc, n'ayant aucune connaissance préalable de la seule option pour vous est d'essayer de deviner le format. Mais il l'habitude de fonctionner parfaitement. Je crois que le 1er janvier est également représentées dans "dd-MM-yyyy" et "MM-jj-aaaa". Donc non, il n'existe pas de techniques robustes
- Est-ce que votre demande de générer de la date? Si oui, vous pouvez l'obtenir de la culture et de il obtenir exacte format datetime. Si vous obtenez la date à partir de source externe déjà comme une chaîne de caractères, vous devrez peut-être de la requête que la source de la culture locale (généralement datetime les données sont stockées dans une locale) ou au moins à essayer datetime.TryParse()
Vous devez vous connecter pour publier un commentaire.
Cela peut vous aider..
(dans le tableau, ajouter plus de formats vérifier)
Je crois que vous rencontrez des problèmes avec les chaînes date où la valeur du mois <= 12 car cela signifie que le format de cette chaîne pourrait être
"yyyy-MM-dd"
ou"yyyy-dd-MM"
Il n'y a aucun moyen de savoir lequel est le bon, sauf si vous placez une préférence dans votre analyseur.
Par exemple:
2012/08/07
- "cela pourrait-il être en juillet ou en août?"Vous pourriez tout simplement la force brute et espérons qu'il y est un CultureInfo correspondant au format
Si vous voulez reconnaître le format, il n'y a presque aucun moyen de le faire avec 100% de certitude. Cependant, vous pouvez aller à travers tous les formats pris en charge par l'
CultureInfo
etTryParse
eux. Malheureusement, cela pourrait donner des résultats incorrects, comme il n'y a pas de façon de dire qu'est-ce que l'année, le mois et le jour dans quelque chose comme ceci:En fonction de vos préjugés culturels, vous pouvez l'interpréter comme le octobre 11, 2012; novembre 10, 2012 ou novembre 12, 2010.
Vous n'avez pas mentionné ce que vous voulez faire avec la date, donc je vais simplement vous donner régulièrement des meilleures pratiques:
Ad 1. Convertir invariant date & format de l'heure d'utilisation:
ou (pour les convertir à ISO8601format):
Que, vous pouvez l'analyser DateTime de invariante format:
ou (format universel nécessite pas de CultureInfo):
Ad 2 & 3. Mise en forme et l'analyse spécifique de la culture est similaire à la mise en forme et l'analyse de l'invariant de dates, mais vous avez besoin de remplacer InvariantCulture avec une détecté, spécifiques exemple, dire
CultureInfo.CurrentCulture
.Selon le type de votre application, vous pouvez utiliser dédié de contrôle du Calendrier, c'est à dire jQuery UI Datepicker.
Utiliser le code ci-dessous :
chaîne sysFormat = CultureInfo.CurrentCulture.DateTimeFormat;