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

最佳答案

您可以使用:

var formatInfo = CultureInfo.CurrentCulture.DateTimeFormat;
string pattern = formatInfo.ShortDatePattern + " " + formatInfo.LongTimePattern;


遵循MSDN docs for 'G'状态:


  “ G”标准格式说明符表示短日期(“ d”)和长时间(“ T”)模式的组合,并用空格分隔。

关于c# - .Net获取DateTimeFormat“G”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16610356/

10-10 12:36