我想使用DataGridView显示日期,使用DateTimePicker来实现过滤器。我希望他们都以“G”格式Standard Date and Time Format显示日期时间。理想情况下,我会做
dateTimePicker1.CustomFormat = "G";
但这似乎不起作用。 (它在DateTimePicker中显示字符“G”。)我找到了以下解决方法,但对我来说似乎很脆弱和麻烦。
DateTime now = DateTime.Now;
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns('G')[0];
dateTimePicker1.Value = now;
dataGridView.Rows.Add(now);
有任何改进建议吗?
编辑:添加我设置dateTimePicker1.Format。
答案 0 :(得分:3)
您可以使用:
var formatInfo = CultureInfo.CurrentCulture.DateTimeFormat;
string pattern = formatInfo.ShortDatePattern + " " + formatInfo.LongTimePattern;
遵循MSDN docs for 'G'状态:
“G”标准格式说明符表示短日期(“d”)和长时间(“T”)模式的组合,以空格分隔。
答案 1 :(得分:1)
DateTimePicker不支持。检查它支持该属性的值:
http://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker.customformat.aspx
检查运行该代码的时间,实际放入选择器的CustomFormat属性的不是web.config中文化的长日期和时间模式。
重要编辑:也许只需将Format属性设置为DateTimePickerFormat.Long即可获得您想要的功能。