日期时间转换器WPF
本文关键字:WPF 转换器 时间 日期 | 更新日期: 2023-09-27 18:30:14
我制作了这个转换器,用于在从DataPicker中选择日期后获取当前时间。在字符串Date中,我得到了从DatePicker中选择的值,但我似乎不能只得到日期。Value属性的格式是2013年9月24日12:00:00我希望它是2013年12月24日
我得到的错误是"错误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;
}
您需要先将其转换为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;
}
您应该将值强制转换为DateTime
类型,因为Object
类型没有ToString(String f)
方法。
if (value is DateTime)
{
var dateTime = (DateTime)value;
return dateTime.ToString("dd/MM/yyyy");
}
return string.Empty;
检查值的类型后,需要将其强制转换为适当的类型,以便能够使用format参数执行"ToString"调用。尝试:
if (value is DateTime)
{
var dateValue = value as DateTime;
string date = dateValue.ToString("dd/MM/yyyy");
return date;
}
如果您在WPF DatePicker控件上使用转换器,您应该注意,尽管您使用了转换器,WPF DatePixer本身也会重新格式化日期。您必须设置日期选择器的样式,以包含StringFormat。
这里有一个相关的问题:如何在DatePicker中只显示月-年字符串格式,它显示一个附加的属性来修改DatePicker的行为以显示自定义格式。这是必需的,因为WPF Datepicker控件本身存在缺陷。
另外请注意,还有一些注意事项,特别是DatePicker将在其默认字符串格式和您应用的字符串格式之间闪烁!我在上面的问题中回答了一个变通方法,可以在没有闪烁的情况下将自定义格式应用于WPF日期选择器。
希望你能找到你想要的解决方案。
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;
}