2010-08-03 2 views
2

У меня есть следующая проблема с обработкой форматов datetime для компонента, который я разрабатываю.Поиск DateTimeFormat, полученный, когда DateTime.ToString() называется

string value = DateTime.Now.ToString(); // value = "8/3/2010 2:20:49 PM" 

Как узнать, какой формат даты value относится к ->"M/d/yyyy h:mm:ss tt"

Я хочу сохранить этот текущий формат DATETIME при экспорте и использовать тот же во время импорта. Различные apis, доступные в DateTimeFormatInfo.CurrentInfo и CultureInfo.CurrentCulture.DateTimeFormat, не предоставляют эту информацию.

Одним из решений, которое я знаю, является использование dt.ToString («u») для хранения и анализа времени в универсальном формате, но мне любопытно, как я мог получить вышеуказанный формат.

ответ

2

За документации:

DateTime.ToString() 

Значение этого экземпляра отформатирован с использованием общего спецификатор формата, «G», как описано в Formatting Обзор темы. Возвращаемое значение идентично возвращаемому ToString ("G", null).

После РОУ ссылки Форматирование Обзор -> Формат даты и времени Строки -> Стандартные DateTime Формат строки возвращает нас к

G

Общая дата/шаблон время (долгое время)

Отображает комбинацию коротких дат и длинных паттернов, разделенных пробелом.

Так формат, который вы хотите должны быть получены путем объединения ShortDatePattern и LongTimePattern членов Thread.CurrentThread.CurrentCulture.DateTimeFormat.

1

Если вам нужен надежный импорт/экспорт DateTimes, лучше всего установить использованный формат, указанный явно, например. используя инвариантную культуру.

+0

Да. Я использую это, но хотел знать, могу ли я получить текущий формат даты и времени. –

+0

См. Ответ Канкан. Свойства LongDatePattern и LongTimePattern текущей культуры предоставят вам эту информацию. – tdammers

1

Отметьте Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongDatePattern для текущего формата даты и времени.

Смежные вопросы