2010-06-04 3 views
0

Кто-нибудь знает, как отображать дату даты на основе CurrentCulture, но Time соответствует этому шаблону "HH:mm:ss.fff"?Показать дату на основе культуры, но Время, основанное на шаблоне

Я пытался использовать:

DateTime NewDate = DateTime.Now; NewDate.ToString (CultureInfo.CurrentCulture);
Результаты: 4-6-2010 14:49:41.
Ожидаемое: 4-6-2010 14.49.41,495.

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

+0

Определение ** не работает **, вы можете разместить то, что вы получаете против того, что вы ожидаете? – R0MANARMY

+0

Я обновил вопрос. Надеюсь, теперь это ясно. – Albertus

ответ

1
string s = String.Format("{0} {1}", NewDate.ToString("d"), NewDate.ToString("HH:mm:ss.fff")); 

Если не хочет использовать ток культуры для форматирования DateString вы можете создать экземпляр CultureInfo и передать его в метод ToString

CultureInfo ci = new CultureInfo("en-US"); 
string s = String.Format("{0} {1}", NewDate.ToString("d", ci), NewDate.ToString("HH:mm:ss.fff")); 
+0

Вот и все! Большое спасибо Мортен. просто нужно добавить miliseconds: string s = NewDate.ToString ("d") + "" + NewDate.ToString ("HH: mm: ss.fff"); – Albertus

+0

отлично - я добавил миллисекунды сейчас :-) –

1
NewDate.Date.ToString(Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern) + 
    NewDate.TimeOfDay.ToString("HH:mm:ss.fff"); 

От MSDN:

Этот метод использует информацию о форматировании, полученную из текущей культуры. В частности, она сочетает в себе строку пользовательского формата, возвращаемую ShortDatePattern и LongTimePattern свойства объекта DateTimeFormatInfo возвращенного Thread.CurrentThread.CurrentCulture.DateTimeFormat собственность