Я работаю над приложением, в котором я установил культуру по умолчанию для всего приложения.
static void Main()
{
try
{
#region set date pattern for whole application
try
{
CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.ShortDatePattern = System.Configuration.ConfigurationManager.AppSettings["ShortDateFormat"];
culture.DateTimeFormat.LongDatePattern = System.Configuration.ConfigurationManager.AppSettings["LongDateFormat"];
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
}
catch (Exception ex)
{
RCOP.SmartClient.General.SaveLog(ex);
}
#endregion
}
....
}
Формат даты и времени не применяется к datatables
, а столбец даты в datatables
имеет формат даты, установленный на компьютере, что приводит к исключению, если пользователь меняет формат компьютера datetime
. поэтому я должен использовать следующий код для индивидуального datatables
dataTable.Locale.DateTimeFormat.ShortDatePattern = Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern;
dataTable.Locale.DateTimeFormat.LongDatePattern = Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongDatePattern;
Проблема в том, что я должен применить вышеуказанные настройки во всем приложении (более 200 мест, поскольку win-приложение очень большое), где я использовал datatables
.
Как применить настройку datetime
в одном месте, чтобы все datatables
имели такой же формат datetime
, как установлено в культуре по умолчанию.