Вот вам странный..ToShortDateString возвращает другой культурный формат, чем ожидалось
У нас есть интерфейс C#, который работает с начала года без проблем на компьютере с Windows XP (32bit). Мы только что обновили ПК до Windows 7 (64 бит) с приложениями, установленными SCCM.
С последней версией даты в текстовой области начали появляться в формате США (5/2/2014) вместо формата в Великобритании (02/05/2014).
Код, который в настоящее время используется:
string Lines = FromFormat.Text + " from " + FromFormat.Charge_From.ToShortDateString() + " to " + FromFormat.Charge_To.ToShortDateString() +".";
Где FromFormat находится объект с исходными данными, Charge_From & Charge_To являются DataTime переменными.
Мы проверили региональные настройки компьютера и создал небольшой тест приложения для отображения параметров преклира из .Net оба они заданы в Великобритании форматов Код для тестового приложения:
label1.Text = DateTime.Now.ToString();
label2.Text = DateTime.Now.ToString("dd MMM yyyy");
label3.Text = DateTime.Now.ToShortDateString();
label4.Text = Thread.CurrentThread.CurrentCulture.EnglishName;
Я знаю, что Я могу заменить ToShortDateString()
на ToString("dd/MM/yyyy")
, чтобы заставить правильный формат, но мой вопрос, почему это происходит?
Это как-то связано с обновлением окон 7? или SCCM?
Заранее спасибо
Какова ваша 'CurrentCulture'? Это 'en-GB' или' en-US'? –
_ «Я знаю, что я могу заменить ToShortDateString() на ToString (« dd/MM/yyyy »), чтобы заставить правильный формат« _ Это неверно, «ToString (« dd/MM/yyyy »)» также будет используйте разделитель дат вашей текущей культуры вместо '/'. –
Насколько я могу судить, все компьютеры используют en-GB – Tony