Подтвердить что ты не робот

Как получить формат System DateTime?

Я ищу решение для получения формата даты системы.

Например: если я получаю DateTime.Now? Какой формат даты используется? DD/MM/YYYY и т.д.

4b9b3361

Ответ 1

Если он не был изменен в другом месте, он получит его:

string sysFormat = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;

Если вы используете приложение winforms, вы также можете посмотреть UICulture:

string sysUIFormat = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern;

Обратите внимание, что DateTimeFormat является свойством чтения и записи, поэтому его можно изменить.

Ответ 2

Ответы выше не соответствуют действительности.

У меня была ситуация, когда моя основная нить и мой поток пользовательского интерфейса были вынуждены находиться в культуре "en-US" (по дизайну). Мой формат DateTime для Windows был "dd/MM/yyyy"

string sysFormat = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;
string sysUIFormat = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern;

вернулся "MM/dd/yyyy", но я хотел получить свой реальный формат Windows. Единственный способ, которым я смог это сделать, - создать фиктивный поток.

System.Threading.Thread threadForCulture = new System.Threading.Thread(delegate(){} );
string format = threadForCulture.CurrentCulture.DateTimeFormat.ShortDatePattern;

Ответ 3

Свойство System.DateTime.Now возвращает System.DateTime. Это сохраняется в памяти в двоичном формате, который большинству программистов в большинстве случаев не нужно думать. Когда вы показываете значение DateTime или конвертируете его в строку по любой другой причине, оно преобразуется в соответствии со строкой формата, которая может указывать любой формат, который вам нравится.

В этом последнем смысле ответ на ваш вопрос "если я получаю DateTime.Now, какой формат даты используется?" это "он вообще не использует формат DateTime, потому что вы еще не отформатировали его".

Вы определяете формат, вызывая перегрузку ToString или (необязательно), если вы используете System.String.Format. Также есть формат по умолчанию, поэтому вам не всегда нужно указывать формат. Если вы спрашиваете о том, как определить формат по умолчанию, вы должны посмотреть на ответ Oded.