これにはJava 7とClojure 1.4を使用しています。
Date
OracleDB over を使用して、オブジェクトを含むテーブルの Clojure でいくつかのデータベース テストを作成していますJDBC
。
Date
受け取った日付 (オブジェクト)を比較する必要があるString
ため、おそらくその文字列をオブジェクトに変換する必要がありDate
ます。グーグルで調べた後、JavaのSimpleDateFormat
.
これは私が使用するものです(デバッグ用の追加のものがあります)
(defn parseDate [date]
(do (debug (str "Parsing date: " date ))
(let [ dateobj (java.text.SimpleDateFormat. "dd-MMM-YY")
parsed (do (. dateobj setLenient false) (. dateobj parse date))]
(debug (str "Result: " parsed)) parsed)))
いくつかの日付を投入すると、次の出力が得られます..
Parsing date: 01-jan-12
Result: Mon Jan 02 00:00:00 GMT 2012
Parsing date: 01-jan-13
Result: Mon Dec 31 00:00:00 GMT 2012
Parsing date: 00-jan-12
Result: Mon Jan 02 00:00:00 GMT 2012
Parsing date: 02-jan-13
Result: Mon Dec 31 00:00:00 GMT 2012
それはまったく正しくないようです。
返されるDate
オブジェクトは次のようなものです#<Date Mon Jan 02 00:00:00 GMT 2012>
。これは、データベースから返されるものと明らかに等しくありません。たとえば、#<Date 2012-01-01>
.
誰にもこれについて何か考えがありますか?
注: 使用setLenient
してもしなくても (true または false を使用しても) 同じ結果が得られます。
回答 (Jon Skeet の厚意による回答へのリンク)
フォーマット文字列で YY を使用していましたが、実際には yy を使用する必要がありました (Y は週の年であり、y は単純な年であるため)。