Неправильное форматирование в Winform DataGridView для типа DateTime

Я использую 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="введите здесь описание изображения">


person Rohit Prakash    schedule 25.07.2018    source источник


Ответы (1)


Может быть, если вы установите

dataGridView1.Columns[3].DefaultCellStyle.Format = "yyy-MM-dd kl H:mm:ss";

или, возможно, расширить свой класс данных, чтобы он также содержал дату в желаемом формате.

person Theo    schedule 25.07.2018
comment
Это может быть один обходной путь. но проблема в том, что этот формат применим ко всему приложению, и его невозможно установить везде. - person Rohit Prakash; 26.07.2018