Tôi cần đăng nhập một số sự kiện trên một kịch bản Clojure Client-Server, nhưng có vẻ như với tôi rằng Clojure không cung cấp chức năng ngày/giờ. Bất cứ ai có thể xác nhận điều này hoặc tôi đang thiếu một cái gì đó ở đây ?! Nếu tôi đúng thì tôi cần phải sử dụng java interop, phải không?Cách tốt nhất để có được ngày tháng và thời gian ở Clojure là gì?
Trả lời
Nếu tất cả bạn cần là để có được thời gian hiện tại và ngày cho logger của bạn, sau đó chức năng này là OK:
(defn now [] (new java.util.Date))
Bây giờ mà bạn đề cập này, nó sẽ là hữu ích để có hỗ trợ cho các đối tượng ngày bất biến .
Có một số Clojure-wrapper library for Joda-Time. Hoặc bạn sẽ phải sử dụng java interop với Java API chuẩn.
Cảm ơn, nhưng tôi khá giữ phụ thuộc của tôi càng thấp càng tốt. – Ali
@Ali - thư viện thời gian lành mạnh là sự phụ thuộc mà bạn nên cân nhắc kỹ; tiếc là các thư viện chuẩn (cho nhiều ngôn ngữ) không phải lúc nào cũng chính xác. –
Với clj-time, thư viện Clojure rằng kết thúc tốt đẹp các thư viện Java Joda Thời gian, bạn có thể sử dụng mã như sau:
(require '[clj-time.core :as time])
(require '[clj-time.format :as time-format])
(time/now) => #<DateTime 2013-03-31T03:23:47.328Z>
(def time-formatter (time-format/formatters :basic-date-time)) ;; ISO 8601 UTC format
(time-format/unparse custom-formatter (date-time 2010 10 3)) => "20101003T000000.000Z"
Một lợi ích của Joda Thời gian (và do đó CLJ-time) là hỗ trợ phiên bản mới thay đổi mới cho múi giờ.
Nếu bạn không cần gì nâng cao hơn, chỉ cần sử dụng các lớp Java.
(.format (java.text.SimpleDateFormat. "MM/dd/yyyy") (new java.util.Date))
Java 1.8 thêm gói java.time cốt lõi JDK để làm sạch nhiều frustrations với tình trạng ngày & thời gian trong Java. Kể từ java.time bây giờ là một phần rộng rãi của Java lõi với một API được cải thiện nhiều, tôi sẽ khuyến khích bạn cung cấp cho nó cái nhìn đầu tiên khi viết ngày mới & mã thời gian.
Ví dụ:
(java.time.LocalDateTime/now)
- 1. Cách thực hành tốt nhất để nhận được một DateTime ngẫu nhiên giữa hai ngày tháng là gì?
- 2. Cách tốt nhất để có được ngày đầu tiên và cuối cùng của tháng trước?
- 3. Cách tốt nhất để xác định số ngày trong tháng bằng javascript là gì?
- 4. Ngày Javascript: cách tốt nhất để giải quyết Thời gian tiết kiệm ánh sáng ban ngày là gì?
- 5. Giải pháp nguồn mở tốt nhất để lưu trữ dữ liệu chuỗi thời gian là gì?
- 6. Trong Ruby on Rails, sự khác nhau giữa DateTime, Dấu thời gian, Thời gian và Ngày tháng là gì?
- 7. Cách "Đúng" để viết một tệp EDN ở Clojure vào tháng 8 năm 2013 là gì?
- 8. Cách tốt nhất để lưu trữ datetimes (dấu thời gian) trong CouchDB là gì?
- 9. Cách tốt nhất để thêm khoảng thời gian trong PHP là gì?
- 10. Đối phó với ngày tháng và thời gian trong R
- 11. Tính thời gian ngày Khoảng thời gian tối thiểu, tối đa và lớn nhỏ nhất
- 12. Cách tốt nhất để trình bày các quy tắc thời gian mùa hè là gì?
- 13. Cách đơn giản nhất để tạo ngày tháng là ngày đầu tiên của tháng, được đưa ra ngày khác
- 14. Cách tốt nhất để xác định xem ngày tháng có trong JavaScript không?
- 15. Cái nào là bộ đếm ngày tháng Java tốt nhất ..?
- 16. Dấu thời gian unix là cách tốt nhất để lưu dấu thời gian?
- 17. Cách trực quan, có thể sử dụng nhất để nhập thời gian trong ngày hoặc thời lượng là gì?
- 18. C#: cách dễ nhất để trừ thời gian là gì?
- 19. Cách tốt nhất để đồng bộ thời gian máy tính với máy chủ thời gian internet là gì?
- 20. Cách tốt nhất để giữ chỉ mục thời gian thực là gì?
- 21. Lấy thời gian và ngày tháng từ dấu thời gian bằng php
- 22. Chuyển đổi thời gian Epoch sang định dạng ngày tháng và thời gian trong Java
- 23. Trong Java, cách nhanh nhất để có được thời gian hệ thống là gì?
- 24. Cách tốt nhất để đối phó với toán học thời gian trong Perl là gì?
- 25. Cách thanh lịch nhất để có được kết thúc trong ngày (datetime) là gì?
- 26. Cách lưu trữ ngày tháng không có thời gian trong Dữ liệu chính
- 27. Lấy ngày hiện tại và thời gian với [NSDate ngày] Thời gian ngày
- 28. Cách tốt nhất để tính chênh lệch ngày tháng trong Javascript
- 29. Cách tốt nhất để kiểm tra xem hôm nay là ngày đầu tiên của tháng
- 30. Bộ chọn thời gian miễn phí, tốt nhất cho WPF là gì?
Tuyệt vời, tôi nghĩ rằng tôi muốn đi với (print (.getTime (now))) để duy trì độ chính xác hợp lý trong các tệp nhật ký của tôi. Cảm ơn. – Ali
'(defn now [] (java.util.Date.))' Là phiên bản chuẩn. – Rayne
Yay! 42 upvotes: D –