Отображать дату на основе культуры, но время на основе шаблона - PullRequest
0 голосов
/ 04 июня 2010

Кто-нибудь знает, как отобразить дата datetime, основанная на 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.

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

Ответы [ 2 ]

1 голос
/ 04 июня 2010
string s = String.Format("{0} {1}", NewDate.ToString("d"), NewDate.ToString("HH:mm:ss.fff"));

Если вы не хотите использовать текущую культуру для форматирования вашей строки даты, вы можете создать экземпляр CultureInfo и передать его в свой метод ToString

CultureInfo ci = new CultureInfo("en-US");
string s = String.Format("{0} {1}", NewDate.ToString("d", ci ), NewDate.ToString("HH:mm:ss.fff"));
1 голос
/ 04 июня 2010
  NewDate.Date.ToString(Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern) + 
     NewDate.TimeOfDay.ToString("HH:mm:ss.fff");

С MSDN :

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

.
...