Локализация дескрипторы формат даты

голоса
15

Каков наилучший способ локализации дескриптор формат даты?

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

Что такое лучший способ сделать это таким образом, чтобы иметь смысл для большинства пользователей (например, дд / M / ууу сбивает с толку из-за изменения в случае и переключения между одним и двумя буквами).

Задан 03/08/2008 в 18:30
источник пользователем
На других языках...                            


7 ответов

голоса
6

Просто используйте ISO-8601 . Это международный стандарт.

Date and time (current at page generation) expressed according to ISO 8601:
Date:                           2014-07-05
Combined date and time in UTC:  2014-07-05T04:00:25+00:00
                                2014-07-05T04:00:25Z
Week:                           2014-W27
Date with week number:          2014-W27-6
Ordinal date:                   2014-186
Ответил 03/08/2008 в 19:18
источник пользователем

голоса
4

Я должен согласиться с ОП «неправильно» датами действительно баночки с моим DD / MM / YYYY воспитанием , и я нахожу ISO 8601 даты и время , очень легко работать. На этот раз стандарт получил это право и engtech имеет очевидный ответ , который не требует локализации.

Я собирался сообщить форму ввода рождения на переполнение стека, как ошибка из-за того, сколько больной палец это в большинстве стран мира.

Ответил 04/08/2008 в 19:50
источник пользователем

голоса
2

Вот мой текущий метод. Какие-либо предложения?

Regex singleMToDoubleRegex = new Regex("(?<!m)m(?!m)");
Regex singleDToDoubleRegex = new Regex("(?<!d)d(?!d)");
CultureInfo currentCulture = CultureInfo.CurrentUICulture;

// If the culture is netural there is no date pattern to use, so use the default.
if (currentCulture.IsNeutralCulture)
{
    currentCulture = CultureInfo.InvariantCulture;
}

// Massage the format into a more general user friendly form.
string shortDatePattern = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern.ToLower();
shortDatePattern = singleMToDoubleRegex.Replace(shortDatePattern, "mm");
shortDatePattern = singleDToDoubleRegex.Replace(shortDatePattern, "dd");
Ответил 03/08/2008 в 18:31
источник пользователем

голоса
1

Короткая форма удобна и помогает избежать орфографических ошибок. Локализовать , как это применимо, но обязательно , чтобы отобразить ожидаемый формат (не оставляйте пользователя блайнд). Обеспечить контроль выбора дат в качестве дополнительного помощника заполнения поля.

В качестве дополнительного, на лету анализа и отображения даты в длинной форме тоже может помочь.

Ответил 04/08/2008 в 20:13
источник пользователем

голоса
1

Проблема с международными стандартами, что в значительной степени никто их использует. Я стараюсь, где я могу, но я вынужден использовать дд / мм / гггг почти всюду в реальной жизни, а это значит, я так привык к этому, это всегда сознательный процесс, чтобы использовать ISO-8601. Для большинства людей, которые даже не пытаются использовать ISO-8601 это еще хуже. Если вы можете интернационализацию, где вы можете, я думаю, что это большое преимущество.

Ответил 04/08/2008 в 09:14
источник пользователем

голоса
1

Как о предоставлении формата (мм / дд / гггг или дд / мм / гггг) , а затем распечаткой сегодняшнего дня в культуре пользователя. MSDN есть статья о форматировании DateTime культуры человека , с помощью объекта CultureInfo , которые могут быть полезны в этом. Сочетание формата (что большинство людей знакомы с) в сочетании с текущей датой , представленной в этом формате должно быть достаточно ключ к человеку о том , как они должны ввести дату. (Также управление календарем для тех , кто до сих пор не может понять это).

Ответил 03/08/2008 в 18:37
источник пользователем

голоса
0

Лучший вариант : я бы вместо этого рекомендую использовать стандартный элемент выбора даты.

Альтернатива : каждый раз , когда содержание изменений редактировать управления, разобрать его и дисплей (в отдельном контроле?) Длинный формат даты (т.е. ввода «03/04/09» Дисплей «Ваш вход: 4 марта 2009» )

Ответил 19/09/2008 в 18:02
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more