Как преобразовать дату в формате 09-feb-73 в 09.02.1973 (мм / дд / гггг), используя Ruby on Rails - PullRequest
1 голос
/ 01 августа 2011

Как преобразовать дату в формате 09-feb-73 в 09.02.1973 (мм / дд / гггг), используя Ruby on Rails?

Ответы [ 4 ]

4 голосов
/ 01 августа 2011

Допустимые форматы даты и времени Ruby

Date.strptime("09-feb-73", "%d-%b-%y").strftime("%m/%d/%Y")

Обратите внимание, что strptime является частью Rails.И это соответствующие используемые форматы:

% b - сокращенное название месяца (`` Jan '')

% d - день месяца (01..31)

% m - Месяц года (01..12)

% y - Год без века (00..99)

% Y - Год с веком

1 голос
/ 01 августа 2011

Вы можете сделать это с Date.parse и Date#strftime:

d = Date.parse('09-feb-73').strftime('%m/%d/%Y')
# "02/09/1973"

Вы также можете использовать Date.strptime вместо Date.parse:

d = Date.strptime('09-feb-73', '%d-%b-%y').strftime('%m/%d/%Y')
# "02/09/1973"

Преимущество strptime заключается в том, что вы можете указать формат, а не оставлять его на parse для угадывания.

0 голосов
/ 01 августа 2011

Если вам требуется это в представлении, я бы предложил использовать локализации, так как вы можете легко изменить поведение в зависимости от локальных настроек вашего пользователя и сохранить код вашего контроллера в чистоте (почему контроллер должен заботиться о формате даты?).Пример:

# config/locales/en.yml
en:
  time:
    formats:
      short: "%m/%d/%Y"


# view file
<%=l Time.now, :format => :short %>

Для получения дополнительной информации о локализации рельсов см. Руководство по рельсам .

0 голосов
/ 01 августа 2011

Date.strptime ("09-feb-73", "% d-% b-% y"). Strftime ("% m /% d /% Y")
Форматы даты: http://snippets.dzone.com/posts/show/2255

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...