Added parsing of ISO formats i.e. "2012-12-19T12:12:12.00001"
Conflicts: src/ec_date.erl
This commit is contained in:
parent
5429ec2d14
commit
e28130d9f3
1 changed files with 11 additions and 11 deletions
|
@ -92,13 +92,13 @@ do_parse(Date, Now, Opts) ->
|
||||||
true -> {D1, T1};
|
true -> {D1, T1};
|
||||||
false -> erlang:throw({?MODULE, {bad_date, Date}})
|
false -> erlang:throw({?MODULE, {bad_date, Date}})
|
||||||
end;
|
end;
|
||||||
{D1, _T1, {Ms}} = {{Y, M, D}, {H, M1, S}, {Ms}}
|
{D1, T1, {Ms}} = {{Y, M, D}, {H, M1, S}, {Ms}}
|
||||||
when is_number(Y), is_number(M),
|
when is_number(Y), is_number(M),
|
||||||
is_number(D), is_number(H),
|
is_number(D), is_number(H),
|
||||||
is_number(M1), is_number(S),
|
is_number(M1), is_number(S),
|
||||||
is_number(Ms) ->
|
is_number(Ms) ->
|
||||||
case calendar:valid_date(D1) of
|
case calendar:valid_date(D1) of
|
||||||
true -> {D1, {H,M1,S,Ms}};
|
true -> {D1, T1, {Ms}};
|
||||||
false -> erlang:throw({?MODULE, {bad_date, Date}})
|
false -> erlang:throw({?MODULE, {bad_date, Date}})
|
||||||
end;
|
end;
|
||||||
Unknown -> erlang:throw({?MODULE, {bad_date, Date, Unknown }})
|
Unknown -> erlang:throw({?MODULE, {bad_date, Date, Unknown }})
|
||||||
|
@ -108,14 +108,14 @@ do_parse(Date, Now, Opts) ->
|
||||||
%% @doc parses the datetime from a string into 'now' format
|
%% @doc parses the datetime from a string into 'now' format
|
||||||
nparse(Date) ->
|
nparse(Date) ->
|
||||||
case parse(Date) of
|
case parse(Date) of
|
||||||
{DateS, {H, M, S, Ms} } ->
|
{DateS, Time, {Ms} } ->
|
||||||
GSeconds = calendar:datetime_to_gregorian_seconds({DateS, {H, M, S} }),
|
GSeconds = calendar:datetime_to_gregorian_seconds({DateS, Time}),
|
||||||
ESeconds = GSeconds - ?GREGORIAN_SECONDS_1970,
|
ESeconds = GSeconds - ?GREGORIAN_SECONDS_1970,
|
||||||
{ESeconds div 1000000, ESeconds rem 1000000, Ms};
|
{ESeconds div 1000000, ESeconds rem 1000000, Ms};
|
||||||
DateTime ->
|
DateTime ->
|
||||||
GSeconds = calendar:datetime_to_gregorian_seconds(DateTime),
|
GSeconds = calendar:datetime_to_gregorian_seconds(DateTime),
|
||||||
ESeconds = GSeconds - ?GREGORIAN_SECONDS_1970,
|
ESeconds = GSeconds - ?GREGORIAN_SECONDS_1970,
|
||||||
{ESeconds div 1000000, ESeconds rem 1000000, 0}
|
{ESeconds div 1000000, ESeconds rem 1000000, {0}}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue