C# 返回重新格式化和绑定的日期

C# 返回重新格式化和绑定的日期,c#,xaml,C#,Xaml,转换绑定日期值/字段时遇到问题。数据库中的字段的字段类型为VARCHAR(12),格式为“yyyy-MM-dd”。其中,作为XAML视图上绑定的对象,它也是一个日期选择器 当我拉入初始字段时,我的绑定转换器似乎工作正常(见下文): 然而,我似乎无法将它转换回来。在帮助下,我尝试了以下的一些变化——但到目前为止没有任何运气 DateTime dt = DateTime.ParseExact(value.ToString(), "yyyy'|'MM'|'dd", CultureInfo.Invari

转换绑定日期值/字段时遇到问题。数据库中的字段的字段类型为VARCHAR(12),格式为“yyyy-MM-dd”。其中,作为XAML视图上绑定的对象,它也是一个日期选择器

当我拉入初始字段时,我的绑定转换器似乎工作正常(见下文):

然而,我似乎无法将它转换回来。在帮助下,我尝试了以下的一些变化——但到目前为止没有任何运气

DateTime dt = DateTime.ParseExact(value.ToString(), "yyyy'|'MM'|'dd", CultureInfo.InvariantCulture);
return dt.ToShortDateString();

工作更新-这是一个有点长,我本来希望,但这似乎做到了窍门:

    try
    {
        DateTime dt;
        string strValue = value.ToString();

        if (DateTime.TryParseExact(strValue, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
        {
            return dt.ToString("yyyy-MM-dd");
        }
        else
        {
            return DateTime.MinValue;
        }
    }
    catch (Exception ex)
    {
        return DateTime.MinValue;
    }

试试这里提到的
DateTime.ToString()
方法

我已经试过了,但没能成功。如果我进入即时窗口,只需键入?value.ToString(“d”);-我得到了这样一条消息,“方法‘ToString’不重载1个参数什么是
值的类型”
?谢谢Babu-当从数据库中取出它时,它是一个字符串。当放回它时,它来自XAML/view DatePicker(我相信是DateTime)。我将稍微修改我的问题,因为我有一个更好的方法来回答第一部分。)你能尝试
DatePicker.Text
来获取日期选择器字段的字符串值并对其进行解析吗?因为它是数据库中的字符串,所以你不需要解析,相反,你可以按原样存储字符串。它是绑定转换器的一部分,所以它是一个对象-但我会再试一次。
    try
    {
        DateTime dt;
        string strValue = value.ToString();

        if (DateTime.TryParseExact(strValue, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
        {
            return dt.ToString("yyyy-MM-dd");
        }
        else
        {
            return DateTime.MinValue;
        }
    }
    catch (Exception ex)
    {
        return DateTime.MinValue;
    }