我在项目中使用dot net 3.5,需要在DataGridView中绑定DateTime类型值。
我的文化设置为SV-瑞典语,并且我已将ShortTime格式设置为-'kl'H:mm ,将LongTime格式设置为-'kl'H:mm:ss < / strong>
根据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中测试了相同的方案,根据系统区域性设置中的设置,此方法可以正常工作。
有人能解释点网3.5中的这种奇怪行为吗?
答案 0 :(得分:0)
也许您设置了
dataGridView1.Columns[3].DefaultCellStyle.Format = "yyy-MM-dd kl H:mm:ss";
或者扩展您的Data类,以便它也以所需的格式保存日期。