Like Chronic, but for Elixir.
Add it as a dependency to your project:
defpdepsdo[{:chronic,"~> 1.1.2"},]endThen you can use it wherever you wish:
{:ok,time,offset}=Chronic.parse("tuesday 9am")The time returned is a Calendar.NaiveDateTime from the calendar package. The offset returned is a time zone offset.
If Chronic encounters a format it doesn't recognise, it will return an error tuple:
{:error,:unknown_format}=Chronic.parse("definitely not a known format, no siree")If you're not sure what you're going to get back, use a case:
input="some user input goes here"caseChronic.parse(input)do{:ok,time,offset}-># do something with time + offset{:error,:unknown_format}-># present a good error message to the userend