Я не понимаю комментарии в вашем коде - используемые вами спецификаторы формата даты / времени ведут себя именно так, как я и ожидал.Почему вы ожидаете, что "MM / dd / yyyy" поставит день на первое место?
Если вам нужен собственный формат, основанный на шаблоне, используемом в данной культуре, вы можете создать его, взглянув на DateTimeFormatInfo.ShortDatePattern
, DateTimeFormatInfo.ShortTimePattern
и т. Д. Например, если вам нужен пользовательский формат с днем недели, за которым следует короткое время, зависящее от культуры, вы можете использовать:
string format = "dddd " + culture.DateTimeFormat.ShortTimePattern;
Console.WriteLine(DateTime.Now.ToString(format, culture);
Является ли ожидание того, чтоВы должны изменить текущую культуру, вызвать ToShortDateString и затем вернуть нить обратно в исходную культуру?
Нет, вы должны использовать стандартную строку формата даты / времени , если хотитечто-то отличное от текущей культуры:
date.ToString("d", culture); // short date
date.ToString("t", culture); // short time