日期时间转换器WPF

时间:2013-09-05 14:07:36

标签: c# wpf wpf-controls

我有一个转换器,我从DataPicker中选择日期后获取当前时间。在字符串日期我得到从DatePicker中选择的值,但我似乎只能得到日期。进入Value属性的格式是9/24/2013 12:00:00我希望它是9/24/2013

我得到的错误是"错误122方法' ToString'需要1个参数"

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
            if (value is DateTime)
            {
            string date = value.ToString("d/M/yyyy");
            return (date);
            }

             return string.Empty;
}

5 个答案:

答案 0 :(得分:4)

您需要先将其强制转换为DateTime:

public object Convert(object value, Type targetType, object parameter,
                      System.Globalization.CultureInfo culture)
{
    if (value is DateTime)
    {
        DateTime test = (DateTime) value;
        string date = test.ToString("d/M/yyyy");
        return date;
    }

    return string.Empty;
}

答案 1 :(得分:1)

您应该将值转换为DateTime类型,因为ToString(String f)类型没有Object方法。

if (value is DateTime)
{
   var dateTime = (DateTime)value;
   return dateTime.ToString("dd/MM/yyyy");
}

return string.Empty;

答案 2 :(得分:0)

检查值类型后,需要将其转换为适当的类型,以便能够使用format参数执行“ToString”调用。尝试:

if (value is DateTime)
{
    var dateValue = value as DateTime;
    string date = dateValue.ToString("dd/MM/yyyy");
    return date; 
}

答案 3 :(得分:0)

如果您在WPF DatePicker控件上使用Converter,您应该注意WPF DatePicker本身会重新格式化日期,尽管您使用的转换器。你必须style the Datepicker to include a StringFormat

这里有一个相关的问题:如何show just Month Year string format in a DatePicker显示附加属性以修改DatePicker的行为以显示自定义格式。这是必需的,因为WPF Datepicker控件本身存在缺陷。

另请注意,有一些警告,特别是DatePicker会在其默认字符串格式和您应用的字符串格式之间闪烁!我在没有闪烁的情况下回答了上述问题a workaround for to apply a custom Format to WPF Datepicker

希望您找到所需的解决方案。

答案 4 :(得分:-2)

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    if (value is DateTime)
    {
        string date=value.Date.ToShortDateString();
        return (date);
    }

    return string.Empty;
}