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, но и готовы к международному использованию.
См. также
Продолжайте исследования и счастливого кодирования!