Ich habe Probleme, den Interop zwischen java.util.Date und clj-time.Clojure clj-time: parse lokale Zeichenkette
ich erste Rohdaten haben, die eine Instanz von java.util.Date ist, lassen Sie uns Tag:
(def date (new java.util.util.Date))
ich in eine CLJ Zeitobjekt aktiviert werden soll, damit ich tun:
(def st-date (.toString date))
Output:
"Mon Mar 21 16:39:23 CET 2016"
definiere ich einen Formatierer
(def date-formatter (tif/formatter "EEE MMM dd HH:mm:ss zzz yyyy"))
Alles ist hier denke ich.
Ich versuche, so
(tif/parse order-date-formatter st-date)
Ich habe eine Ausnahme, die mir das Format sagen ist nicht richtig.
Ich versuchte
(tif/unparse order-date-formatter (tic/now))
Und ich habe
"lun. mars 21 15:50:29 UTC 2016"
, die die gleiche Datetime als Java-String ist aber in Französisch (meine Sprache) mit UTC
den Code für Test Wrapping
(defn today-date-to-clj []
(let [st-date (.toString (new java.util.util.Date))
date-formatter (tif/formatter "EEE MMM dd HH:mm:ss zzz yyyy")]
(tif/parse date-formatter st-date)))
Ich finde, dass der Formatierer nicht auf der Zeichenkette funktioniert, weil es nicht die gleiche Lokalisierung ist, habe ich recht? Wie man es ändert?
Danke für die Hilfe!
EDIT
Jemand gab mir eine viel bessere Antwort, aber das funktionierte fast für Neugierige (Problem bei "CET 2016", sondern arbeitet für unparse)
(def uni-formatter (tif/with-locale (tif/with-zone order-date-formatter (DateTimeZone/forID "Europe/Paris")) java.util.Locale/US))
Ahah dank ich eine komplizierte Antwort gesucht, nicht sehen es:
Sie können Ihre
java.util.Date
Objektfrom-date
oderfrom-date-time
einenorg.joda.time.DateTime
und dann wenden Sie es auf Ihrem benutzerdefinierten Formatierer übergeben! –