У меня есть сервер с немецкими окнами, но значения DateTime хранятся на сервере mysql в английском формате. Как заставить каждый метод DateTime.ToString() (например, DateTime.Now.ToString()) выводить «Английский» DateTime по умолчанию?Как установить глобальный формат DateTime в проекте ASP.NET?
ответ
Я бы установил культуру в web.config, поэтому любое преобразование или синтаксический анализ конкретной культуры, то есть даты, будет использовать одну и ту же культуру независимо от области операционной системы.
т.е.
<globalization culture="en-GB" uiCulture="en-GB"/>
Я предлагаю вам попробовать и настроить среду mysql и среду .net, чтобы использовать формат Universal datetime, а не локализованную версию. Затем вы можете использовать DateTime.ToString («U»), чтобы использовать надежный формат в любое время.
Кроме того, вы должны иметь возможность передавать свои даты в свою базу данных как параметры с набранными параметрами, а не как строку, и поэтому она будет обрабатывать базовое преобразование для вас. Я использую SqlServer, хотя и не MySql, поэтому я не знаю, получаете ли вы те же результаты.
К сожалению, даже с параметрами типа вы можете определенно еще пройти плохо отформатированные даты в SQL Server. ASP.NET не знает формат даты, который ожидает ваши учетные данные SQL, который может быть установлен для каждого пользователя. – Bryan
Я считаю, что лучше всегда передавать фиксированный формат SQL Server для дат, которые нельзя смешивать из-за проблем с локализацией. MMM dd yyyy обрабатывает это, поскольку нет средств для его обмена месяцами, днями и годами. – schooner