2013-05-09 2 views
3

Мне нужно отображать дату и время с помощью элемента управления Devexpress DateEdit. Этого можно добиться, установив Mask для управления DateEdit. Итак, в настоящее время я взял шаблон DateTime из текущей культуры пользовательского интерфейса потока и установил его в DevExpress DateEdit, управляет свойством EditMask.Формат DateTime с миллисекундами для управления DevExpress. Свойство EditMask

Проблема здесь, мне нужно показать миллисекунды и пользователю. Все существующие культуры не имеют миллисекунд в шаблоне DateTime. Итак, мне нужно добавить поле миллисекунд («fff») к шаблону DateTime выбранной культуры и установить его в свойство EditMask элемента управления DateEdit.

Мой текущий блок кода показан ниже,

var dateEdit = new DateEdit(); 
dateEdit.Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True; 
dateEdit.Properties.VistaEditTime = DevExpress.Utils.DefaultBoolean.True; 
CultureInfo currentUiCulture = Thread.CurrentThread.CurrentUICulture; 
string editMask = currentUiCulture.DateTimeFormat.GeneralLongTimePattern; 
dateEdit.Properties.EditMask = editMask; 

Ниже картина DateTime некоторых культур и ожидаемой модели,

Culture  DateTime Pattern   Expected DateTime Pattern 
---------------------------------------------------------------- 
{en-US}  "M/d/yyyy h:mm:ss tt"  "M/d/yyyy h:mm:ss.fff tt"   
{th-TH}  "d/M/yyyy H:mm:ss"  "d/M/yyyy H:mm:ss.fff" 
{sv-SE}  "yyyy-MM-dd HH:mm:ss"  "yyyy-MM-dd HH:mm:ss.fff" 

Как я могу добиться этого?

ответ

3

Попробуйте это:

// Append millisecond pattern to current culture's full date time pattern 
string fullPattern = DateTimeFormatInfo.CurrentInfo.FullDateTimePattern; 
fullPattern = Regex.Replace(fullPattern, "(:ss|:s)", "$1.fff"); 

Источник: MSDN