C # формат времени, чтобы использовать «AM» и «PM» вместо AM / PM? - PullRequest
0 голосов
/ 16 декабря 2010

Я не могу найти информацию о том, как использовать классы CultureInfo (или все, что нужно) для отображения отформатированного времени в «a.m.» и "п.м." (обратите внимание на периоды) вместо AM и PM по умолчанию.

Во-первых, какая информация о культуре окружает использование «a.m.» / «P.m.» вместо AM / PM? Есть ли способ сделать это с помощью провайдеров формата, а не взломать, например, замены строк? Спасибо.

1 Ответ

6 голосов
/ 16 декабря 2010

Посмотрите, что доступно в DateTimeFormatInfo классе , предоставляемом свойством CultureInfo.DateTimeFormat.Его свойства AMDesignator и PMDesignator позволяют установить строки, используемые для этих значений.

Обратите особое внимание на раздел «Примечания» этой ссылки, в частности:

Приложениеможно заменить стандартные шаблоны пользовательскими шаблонами, установив связанные свойства записываемого объекта DateTimeFormatInfo.Чтобы определить, является ли объект DateTimeFormatInfo доступным для записи, приложение должно использовать свойство IsReadOnly.

Если вы извлекаете CultureInfo и его дочерние информационные объекты из текущей, инвариантной или конкретной культуры, они, как правило, являютсятолько для чтения по умолчанию.Будьте готовы использовать метод Clone() на этих объектах для извлечения копируемых копий, которые вы можете вернуть и использовать для установки строк формата.

Как только у вас будет DateTimeFormatInfo со свойствами AM / PM, установленными по желанию,Вы можете указать это как IFormatProvider, используемый такими методами, как String.Format() и Object.ToString().

...