package Ġcom . sample . blog Ċ Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . format . DateTime Formatter Builder Ċ import Ġjava . time . temporal . Ch rono Field Ċ import Ġjava . util .* Ċ Ċ fun ĠLocalDateTime . format (): ĠString Ġ= Ġthis . format ( english Date Formatter ) Ċ Ċ private Ġval Ġdays Lookup Ġ= Ġ( 1 .. 3 1 ). associate Ġ{ Ġit . to Long () Ġto Ġget Ordinal ( it ) Ġ} Ċ Ċ private Ġval Ġenglish Date Formatter Ġ= ĠDateTime Formatter Builder () ĊĠĠĠ Ġ. append Pattern (" yyyy - MM - dd ") ĊĠĠĠ Ġ. append Literal (" Ġ") ĊĠĠĠ Ġ. append Text ( Ch rono Field . DAY _ OF _ MONTH , Ġdays Lookup ) ĊĠĠĠ Ġ. append Literal (" Ġ") ĊĠĠĠ Ġ. append Pattern (" yyyy ") ĊĠĠĠ Ġ. to Formatter ( Locale . EN GL ISH ) Ċ Ċ private Ġfun Ġget Ordinal ( n : ĠInt ) Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġn Ġin Ġ 1 1 .. 1 3 Ġ-> Ġ"${ n } th " ĊĠĠĠ Ġn Ġ% Ġ 1 0 Ġ== Ġ 1 Ġ-> Ġ"${ n } st " ĊĠĠĠ Ġn Ġ% Ġ 1 0 Ġ== Ġ 2 Ġ-> Ġ"${ n } nd " ĊĠĠĠ Ġn Ġ% Ġ 1 0 Ġ== Ġ 3 Ġ-> Ġ"${ n } rd " ĊĠĠĠ Ġelse Ġ-> Ġ"${ n } th " Ċ } Ċ Ċ fun ĠString . to Slug () Ġ= Ġlowercase () ĊĠĠĠ Ġ. replace ("\ n ", Ġ" Ġ") ĊĠĠĠ Ġ. replace ("[ ^ a - z \\ d \\ s ] ". to Regex (), Ġ" Ġ") ĊĠĠĠ Ġ. split (" Ġ") ĊĠĠĠ Ġ. join ToString ("- ") ĊĠĠĠ Ġ. replace ("- +". to Regex (), Ġ"- ")