Windows应用程序c# - datetime转换器

时间:2014-01-20 14:48:12

标签: c# datetime windows-store-apps

我在twoway模式下在windows store app中使用转换器。

public object ConvertBack(object value, Type targetType,
        object parameter, string language)
{
    return ((DateTime)value).ToString("yyyy-MM-dd");
}

另一种方法:

public object ConvertBack(object value, Type targetType,
        object parameter, string language)
{
    DateTime dt;
    DateTime.TryParseExact(value.ToString(),
                           "yyyy-MM-dd",
                           System.Globalization.CultureInfo.InvariantCulture,
                           System.Globalization.DateTimeStyles.None,
                           out dt);
    return dt;
}

谁能告诉我为什么这对我不起作用?和afkors,如何解决? 从datePicker转换器获取此字符串:19.1.2014 15:43:02 +01:00并且无法转换。

  

错误消息:转换器无法转换类型的值   'System.DateTime,mscorlib,Version = 4.0.0.0,Culture = neutral,   PublicKeyToken = b77a5c561934e089'键入'DateTime';   BindingExpression:Path ='DateFrom'   DataItem ='Infomed21_Mbx.Data.resultFilter,Infomed21-Mbx,   Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null';目标要素   是'Windows.UI.Xaml.Controls.DatePicker'(Name ='datePicker_from');   target属性是'Date'(类型'DateTime')

2 个答案:

答案 0 :(得分:0)

DateTime不知道如何处理该字符串。尝试使用DateTime.ParseExact显式设置预期的字符串格式。

答案 1 :(得分:0)

这是我在WP8项目中使用的DateTime转换器。他们应该毫无困难地在W8上工作

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

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        string strValue = value as string;
        DateTime resultDateTime;
        if (DateTime.TryParse(strValue, out resultDateTime))
        {
            return resultDateTime;
        }
        return System.Windows.DependencyProperty.UnsetValue;
    }