2012-03-19 2 views
0

По какой-то причине необходимо преобразовать временную марку sql-времени YYYY-MM-DD HH: MM: SS в форму времени erlang {{Y, M, D}, {H, M, S}} ,odbc datetime convertion in erlang

К счастью, когда я запрашиваю базу данных, возвращаемое значение уже сформировано как {{Y, M, D}, {H, M, S}}.

как:

 [{4,null,null,null,null, 
       {{2012,12,17},{14,54,4}}, % time-stamp already convert 
             % from 2012-12-17 14:54:04 
        0,678,51,61}] 

, а затем также необходимо преобразовать Эрланга форму времени {{Y, M, D}, {H, M, S}} в SQL-временную метку формы YYYY-MM-DD HH : MM: SS, после некоторого поиска нет такой прямой функции для этого. пишу я так весело, как показано ниже

my_time() -> 
     {{Y,Mo,D},{H,Mi, S}} = erlang:localtime(), 
     TSString = 
    integer_to_list(Y)++"-"++ 
      integer_to_list(Mo)++"-"++ 
      integer_to_list(D)++" "++ 
     integer_to_list(H) ++ ":" ++ 
      integer_to_list(Mi) ++ ":" ++ 
      integer_to_list(S), 
     TSString. 

Это работает, но я не люблю его. Есть ли другой способ сделать это?

ответ

1

Ну используя lib_io: формат() будет очистить его немного:

my_time() -> 
{{Y,Mo,D},{H,Mi, S}} = erlang:localtime(), 
io_lib:format("~4.10.0B-~2.10.0B-~2.10.0B ~2.10.0B:~2.10.0B:~2.10.0B", [Y, Mo, D, H, Mi, S]).