Как конвертировать между форматами даты в Erlang?

У меня есть функция (с именем test), которая возвращает дату

Я привожу вам пример такого возврата: "01-Jun-2012"

Теперь я хочу сделать эту дату в этой форме месяц/год

так что "01 июня 2012" должно стать "06/2012"

потому что я хочу использовать эту дату для отправки смс

send(To,Date) ->
Message =io_lib_format("pr%EAt %E0 payer le ~s",[Date]),
    Url = io_lib:format("http://192.168.1.8/sendsms?tel=~s&text=~s", [To, Message]),
     http:request(lists:flatten(Url), sms).

как я уже сказал, функция test возвращает дату, например, в такой форме "01-Jun-2012"

я должен преобразовать эту форму в другую форму месяц/год (как результат для моего примера 06/2012)

Я думаю, что мне следует разработать функцию, которая имеет в качестве параметра дату в этой форме (день-месяц-год), и в результате для этой функции дата в этой форме месяц/год

обратите внимание, я даю вам тот же пример даты, которая должна быть преобразована: 02 января 2012 г., 01 февраля 2012 г., 01 марта 2012 г., 02 апреля 2012 г., 01 мая 2012 г., 01 июня 2012 г.

как я уже сказал, функция test возвращает такую ​​дату (в коде test я выполняю http-запрос, чтобы вернуть такую ​​дату день-месяц-год (это возврат php-скрипта,


спасибо, но когда я тестирую ec_date:parse, у меня возникает эта ошибка ** exception error: undefined function ec_date:parse/1

обратите внимание, что я работаю с версией 13 erlang

Erlang R13B03 (erts-5.7.4) [source] [rq:1] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)

person sami alagi3    schedule 05.01.2013    source источник
comment
Чтобы использовать модуль ec_date, вам нужно добавить файл в качестве зависимости арматуры. Или просто скопируйте ec_date.erl из связанного репозитория в исходный код вашего собственного проекта.   -  person chops    schedule 09.01.2013


Ответы (2)


Посмотрите ec_date в erlware_commons, который является ответвлением dh_date. (Оба вполне допустимы, но лично я использую вариант ec_date)/

Они оба могут использоваться именно для этой цели: парсинг и форматирование дат.

> OrigDate = "01-Jun-2012",
> ParsedDate = ec_date:parse(OrigDate),
> FinalDate = ec_date:format("m/Y",ParsedDate).
"06/2012"
person chops    schedule 06.01.2013

Комбинация string:split/2, string:to_lower/1 и функции, похожей на:

month("jan") -> 1;
...
month("dec") -> 12.

должно сработать. Также поищите на github, так как, вероятно, уже есть модули для анализа даты для вашего формата... с тестами.

person I GIVE CRAP ANSWERS    schedule 06.01.2013