C# Winform DataGridView中DateTime类型的格式错误

C# Winform DataGridView中DateTime类型的格式错误,c#,.net,winforms,datagridview,datetime-format,C#,.net,Winforms,Datagridview,Datetime Format,我正在一个项目中使用dot net 3.5,需要在DataGridView中绑定DateTime类型值 我的区域设置为SV瑞典语,我将短时格式设置为-'kl'H:mm,将长时格式设置为-'kl'H:mm:ss 据微软称 DateTime.ToString()组合了由返回的自定义格式字符串 的ShortDatePattern和LongTimePattern属性 对象返回的DateTimeFormatInfo对象 Thread.CurrentThread.CurrentCulture.DateTim

我正在一个项目中使用dot net 3.5,需要在DataGridView中绑定DateTime类型值

我的区域设置为SV瑞典语,我将短时格式设置为-'kl'H:mm,将长时格式设置为-'kl'H:mm:ss

据微软称

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;
我在4.6.1中测试了相同的场景,根据在系统区域性设置中设置的内容,这可以正常工作

有人能解释一下dotnet3.5中这种奇怪的行为吗

谢谢。

如果您设置

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

或者扩展您的数据类,使其也以所需的格式保存日期。

这可能是一个解决方法。但问题是,这种格式适用于所有应用程序,并且不可能到处设置。
dataGridView1.Columns[3].DefaultCellStyle.Format = "yyy-MM-dd kl H:mm:ss";