Получение текущей даты

Clojure:
Получение текущей даты

Как это сделать:

;; Импортирование Java interop для использования классов Date
(import java.util.Date)
(import java.text.SimpleDateFormat)

;; Получение текущей даты и времени
(defn current-date-time []
  (let [today (new Date)]
    (println "Текущая дата и время: " today)))

(current-date-time)
;; Вывод: Текущая дата и время: Wed Apr 05 00:12:35 BST 2023

;; Форматирование даты в определенный шаблон
(defn formatted-current-date []
  (let [today (new Date)
        formatter (SimpleDateFormat. "dd-MM-yyyy")]
    (println "Сегодняшняя дата: " (.format formatter today))))

(formatted-current-date)
;; Вывод: Сегодняшняя дата: 05-04-2023

Подробнее

Clojure, современный диалект Lisp, предлагает интероперабельность с Java, поэтому мы часто используем богатый API Java для работы с датой и временем. Исторически, даты обрабатывались совсем по-другому – подумайте о шестеренках и солнечных часах – но в программировании мы имели Date и Calendar из Java уже в JDK 1.0. Теперь у нас также есть java.time из Java 8 для более комплексного и единого подхода к временным данным.

Хотя java.util.Date хорошо подходит для базовых потребностей, у него есть свои особенности, например, изменяемость – это означает, что он может изменяться после создания, например, с помощью setTime. java.time неизменяем и более универсален, но для простых задач, например, получения текущей даты, Date все еще справляется со своей задачей.

Альтернативы внутри Clojure включают библиотеки, такие как clj-time, которая оборачивает Joda Time (предшественник java.time), и tick, современная библиотека Clojure для работы со временем. Каждая имеет свои плюсы и минусы в зависимости от объема и сложности ваших потребностей в обработке времени.

С точки зрения реализации, получение текущей даты и времени является довольно простой задачей в Clojure благодаря его корням Java. Обычно это делается одной строкой, хотя форматирование даты требует нескольких дополнительных шагов и понимания шаблонов и стандартов форматирования даты Java.

Смотрите также

Вот несколько интересных уголков интернета для любопытного путешественника во времени Clojure: