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