Поиск DateTimeFormat, полученного при вызове DateTime.ToString () - PullRequest
2 голосов
/ 03 августа 2010

У меня следующая проблема с обработкой форматов даты и времени для разрабатываемого компонента.

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 03 августа 2010

Согласно документации:

DateTime.ToString()

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

По ссылкам в документе Обзор форматирования -> Строки формата даты и времени -> Стандартные строки формата DateTime возвращает нас к

G

Общий шаблон даты / времени (длительное время)

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

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

1 голос
/ 03 августа 2010

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

1 голос
/ 03 августа 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...