Я использую dot net 3.5 в проекте, и мне нужно привязать значение типа DateTime в DataGridView.
Моя культура установлена как SV-Swedish, и я установил формат ShortTime как - 'kl 'H:mm и формат LongTime как - 'kl 'H:mm:ss
Согласно Microsoft https://msdn.microsoft.com/en-us/library/k494fzbf(v=vs.90).aspx
DateTime.ToString() объединяет строки пользовательского формата, возвращаемые свойствами ShortDatePattern и LongTimePattern объекта DateTimeFormatInfo, возвращаемыми свойством Thread.CurrentThread.CurrentCulture.DateTimeFormat.
и при проверке через код или промежуточное окно он работает так, как он сказал ("2018-07-25 kl 15:45:49"). Но когда я привязываю одно и то же значение DateTime к столбцу DataGridView, оно показывает значение в формате 2018-07-26 15:55. Скриншот прикреплен ниже.
Мой код прост, как -
List<Data> dataSource = new List<Data>();
for (int i = 1; i < 20; i++)
{
dataSource.Add(new Data() { Id = i, DateOfJoining = DateTime.Now.AddDays(i), Department = "Department " + i, Name = "Name " + 1});
}
dataGridView1.AutoGenerateColumns = true;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridView1.DataSource = dataSource;
а класс данных -
public class Data
{
public int Id { get; set; }
public string Name { get; set; }
public string Department { get; set; }
public DateTime DateOfJoining { get; set; }
}
Я протестировал тот же сценарий в 4.6.1, и он отлично работает в соответствии с тем, что установлено в настройках культуры системы.
Кто-нибудь может объяснить это странное поведение в Dot net 3.5?
Спасибо. " alt="введите здесь описание изображения">