.Net获取DateTimeFormat“G”

时间:2013-05-17 13:30:46

标签: c# .net datetimepicker

我想使用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。

2 个答案:

答案 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即可获得您想要的功能。