Clojure:
Анализ даты из строки
Как:
Clojure использует возможности Java для разбора дат, поэтому мы будем использовать здесь java.time.LocalDate
:
(require '[java-time :as jt])
(defn parse-date [date-str]
(jt/local-date "yyyy-MM-dd" date-str))
(println (parse-date "2023-04-05"))
Вывод:
#object[java.time.LocalDate 0x4b121a5e "2023-04-05"]
Здесь java-time
– это библиотека Clojure, которая оборачивает API java.time
. Это более идиоматичный Clojure, чем непосредственное взаимодействие с Java.
Погружение
Clojure, появившийся в 2007 году, – это современный Lisp, работающий на JVM. Он предоставляет взаимодействие с Java, включая обработку дат. До появления java.time
(введено в Java 8) в Java использовались java.util.Date
и java.text.SimpleDateFormat
, которые были громоздкими и менее безопасными для потоков.
clj-time
, оболочка Joda-Time, была популярна в Clojure до java-time
, но теперь Joda-Time считается устаревшей. Сегодня java-time
– это основной выбор, поскольку он оборачивает пакет java.time
, который гораздо лучше и по умолчанию неизменяем.
Существуют и чисто Clojure библиотеки, такие как tick
, но они также строятся на основе java.time
Java по практическим соображениям. Используемый пакет java.time
использует систему календаря ISO, но поддерживает и другие. Такая гибкость означает, что программы на Clojure не только дружелюбны к JVM, но и готовы к международному использованию.
См. также
Продолжайте исследования и счастливого кодирования!