Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3521ee5

Browse files
authored
Merge pull request #60 from robdaemon/handle-locales-for-formatters
Clojureifying names breaks under exotic locales
2 parents cc50f80 + c7e9711 commit 3521ee5

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

‎src/java_time/format.clj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44
[java-time.core :as jt.c]
55
[java-time.util :as jt.u])
66
(:import [java.time.temporal TemporalAccessor]
7-
[java.time.format DateTimeFormatter DateTimeFormatterBuilder ResolverStyle]))
7+
[java.time.format DateTimeFormatter DateTimeFormatterBuilder ResolverStyle]
8+
java.util.Locale))
89

910
(def predefined-formatters
1011
(->> (jt.u/get-static-fields-of-type DateTimeFormatter DateTimeFormatter)
1112
(jt.u/map-kv
12-
(fn [^String n fmt]
13-
[(string/lower-case (.replace n \_ \-)) fmt]))))
13+
(fn [^String n fmt]
14+
[(.. (.replace n \_ \-) toString (toLowerCase (Locale/US))) fmt]))))
1415

1516
(defn- get-resolver-style [s]
1617
(if (instance? ResolverStyle s) s

‎test/java_time_test.clj

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
(ns java-time-test
22
(:require [clojure.test :refer :all]
33
[java-time.util :as jt.u]
4-
[java-time :as j]))
4+
[java-time :as j])
5+
(:import java.util.Locale))
56

67
(def clock (j/fixed-clock "2015年11月26日T10:20:30.000000040Z" "UTC"))
78

@@ -846,3 +847,14 @@
846847
(is (= (j/offset-time joda-clock)
847848
(j/offset-time (DateTime. 2015 11 26 10 20 30 40 (DateTimeZone/forID "UTC"))))))))
848849

850+
(deftest locale-test
851+
(let [current-locale (Locale/getDefault)
852+
test-langs ["en" "tr" "cn"]]
853+
(testing "locale specific rules for lower-case can cause formatters to not be found"
854+
(doseq [lang test-langs]
855+
(testing lang
856+
(try
857+
(Locale/setDefault (Locale/forLanguageTag lang))
858+
(is (some? (j/formatter :rfc-1123-date-time)))
859+
(finally
860+
(Locale/setDefault current-locale))))))))

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /