Skip to content

Instantly share code, notes, and snippets.

@sinkovsky
Created October 18, 2009 12:50
Show Gist options
  • Save sinkovsky/212666 to your computer and use it in GitHub Desktop.
Save sinkovsky/212666 to your computer and use it in GitHub Desktop.
parse_iso8601(Time) when is_list(Time) ->
parse_iso8601(list_to_binary(Time));
parse_iso8601(Time) when is_binary(Time) ->
parse_date(Time,{},parse_year).
parse_date(<<Year:32/bitstring, Rest/bitstring>>, Acc, parse_year) ->
parse_date(Rest, {Acc, Year}, parse_month);
parse_date(<<"-", Rest/bitstring>>, Acc, State) ->
parse_date(Rest, Acc, State);
parse_date(<<Month:16/bitstring, Rest/bitstring>>, Acc, parse_month) ->
parse_date(Rest, {Acc, Month}, parse_day);
parse_date(<<Day:16/bitstring, _Rest/bitstring>>, Acc, parse_day) ->
{Acc,Day}.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment