В моем проекте erlang: теперь преобразуется в метку времени высокой точности (bigint) для хранения в MySQL:
timestamp({Mega, Secs, Micro}) ->
Mega*1000*1000*1000*1000 + Secs * 1000 * 1000 + Micro.
Теперь я конвертирую метку времени обратно в исходный кортеж {Mega, Secs, Micro}, используя:
time_tuple(Timestamp) ->
TimeList = erlang:integer_to_list(Timestamp),
Mega = erlang:list_to_integer(string:substr(TimeList, 1, 4)),
Sec = erlang:list_to_integer(string:substr(TimeList, 5, 6)),
Micro = erlang:list_to_integer(string:substr(TimeList, 11, 6)),
{Mega, Sec, Micro}.
Преобразование строк / substr выглядит как уродливый и, возможно, некорректный хак. Что было бы более элегантным способом?