Wie man mehrere Formate mit Noda Time analysiert?

9

Ich mag die Noda Time-Behandlung von Formatierungs- und Analysewerten unter Verwendung der verschiedenen *Pattern -Typen im NodaTime.Text -Namespace. Benutzereingaben sind jedoch oft nicht so regelmäßig wie ein einzelnes Format. Zum Beispiel verwendet unsere App das Zeitformat "h:mm tt" , aber wir möchten in der Lage sein, Benutzereingaben in einem der folgenden Formate zu analysieren:

  • h:mm tt
  • h:mmtt (kein Leerzeichen)
  • h:mm t
  • h:mmt (kein Leerzeichen)
  • h tt
  • hh:mm
  • und so weiter ...

Gibt es eine Möglichkeit, Noda Time zu verwenden, um Eingaben zu parsen, die in einer beliebigen Anzahl von Formaten vorliegen?

    
Jeff Walker Code Ranger 09.11.2012, 21:16
quelle

1 Antwort

3

(Tut mir leid, dass ich so lange gebraucht habe, um darauf zu antworten.)

Ärgerlich sieht es so aus, als hätten wir das nicht bloßgelegt.

Es ist vorhanden in Noda Time im CompositePattern Klasse. Leider ist das momentan intern. Ich habe das Problem 147 behoben, um dies irgendwann zu beheben (wahrscheinlich in der 1.1 Zeitrahmen).

Im Moment ist es wahrscheinlich am einfachsten, den gleichen Code von CompositePattern zu verwenden - Sie müssen dafür keine eigene IPattern<T> -Implementierung erstellen, da es nur die Parse -Methode ist, die nützlich ist. (Tatsächlich könnten Sie es sogar als eine Erweiterungsmethode für IEnumerable<IPattern<T>> schreiben, obwohl ich mir nicht sicher bin, ob wir genug Sichtbarkeit gegeben haben, um die gleiche Art von Fehlerergebnis zu erzeugen.)

    
Jon Skeet 11.11.2012, 21:06
quelle

Tags und Links