sen okurken bir #inst
literal, varsayılan olarak, bir java.util.Date
örneği oluşturulur. Bunlar, clojure.instant
ad alanındaki print-method
(nesnelerin basılı gösterimlerinden sorumlu bir multimethod) için tanımlanan bir yönteme sahiptir (1.5.1 kaynağının ilgili parçası here'dur).
clj-time, DateTime
türünde, hiçbir özel print-method
yöntemine sahip olan Joda-Time ürününü kullanır. Bu bir anlam ifade etmektedir, çünkü gidiş gelişi olmayan bir sunum üreten bir print-method
olması nadiren istenmektedir. Gidiş-dönüş yapabilmek için standart olmayan bir #inst
okuyucusu kullanmanız gerekir. CLJ zamanı kullanırken
(require '[clojure.edn :as edn])
(edn/read {:readers {'inst your-inst-reader}} rdr)
, your-inst-reader
#(clj-time.format/parse some-formatter %)
gibi bir şey olacaktır: Eğer edn verileri okuyorsanız onun docstringe belgelenen olarak Bunu başarmak için, size clojure.edn/read
(veya read-string
) uygun okuyucuyu geçirerek kullanabilirsiniz . Daha sonra clojure.instant
örneğini izleyerek eşleşen bir print-method
tanımını sağlayabilirsiniz. (Ya da sadece print-method
tanımını sağlayabilir ve mükemmel bir yuvarlaklaştırma yapamayacağınızı unutmayın; clj-time çok uygun baskı işlevleri sağlar - aşağıya bakın - bu tamam olabilir.)
Alternatif olarak, yazdırabilirsiniz. java.util.Date
örneklerini okuyun ve bunları DateTime
s adresine dönüştürün; Bunu clj-time.coerce
'da yapmak için işlevler vardır.
Clojure 1.5.1 kullanıyorum, REPL '(java.util.Date.)' Print'larda #inst "#inst" yazarak aşağıdakini giriyorum. 2013-07-09T18: 05: 53.231-00: 00 ". –
Not: clj-time.core/now', Joda olan bir DateTime nesnesidir. – Jeremy
Oh, anladım, benim hatam. Teşekkürler :). 'DateTime'ı' java.util.Date'’e dönüştürme ve daha sonra bastırma nedir? –