日期时间格式小时加一

时间:2015-07-31 15:03:10

标签: c# datetime datagridview formatting

我正在使用DataGridView,我有一个像这样应用日期时间列的格式......

dataGridView1.Columns["Date"].DefaultCellStyle.Format = "MM\\/dd @ hh:mm tt";

我想更改格式,以便生成07/31 11->12之类的内容。 11是当前时间,12是下一个小时。我尝试过hh+1{hh+1}。有没有办法像这样格式化?或者某种方式,我可以覆盖"Date"列的呈现,但仍然将其类型保持为DateTime

1 个答案:

答案 0 :(得分:2)

如果可以在被限制之前编辑该字段,则可以通过这种方式实现您想要的内容。

  var date = DateTime.Now;

  var customDate = string.Format("{0}->{1}", date.ToString("MM\\/dd hh"), date.AddHours(1).ToString("hh"));
  Console.WriteLine(customDate);

Ouputs 07/31 03-> 04

public class SpecialDateConverter : IValueConverter
{
    public object Convert(
        object value,
        Type targetType,
        object parameter,
        CultureInfo culture)
    {
       var date = (DateTime)value;
       return string.Format("{0}->{1}", date.ToString("MM\\/dd hh"), date.AddHours(1).ToString("hh"));
    }

    public object ConvertBack(
        object value, 
        Type targetType, 
        object parameter, CultureInfo culture)
    {
        throw new NotSupportedException();
    }
}