您好我有一个简单的问题,我正在尝试转换(值为DateTime,我想将其转换为字符串)类内部的值类型为另一种类型,到目前为止我已经尝试过:
private string timestamp;
public string timestamp
{
get => timestamp;
set
{
if (value != timestamp)
{
timestamp = (DateTime)value.ToString("dd'/'MM'/'yyyy HH':'mm':'ss.fff");
}
}
}
但没有运气。有没有解决方案??
答案 0 :(得分:3)
您正在使用ToString将字符串转换为字符串,并使用您在DateTime上期望的格式化程序,然后将其转换为必须分配给字符串的DateTime。
显然,这不起作用。
如果您尝试验证新属性值(Value)是否可以视为有效字符串,请使用DateTime.TryParseExact验证给定字符串是否为有效DateTime。如果是,请将字符串分配给属性的后备字段。
set
{
if (value != timestamp && DateTime.TryParseExact(value,
"dd'/'MM'/'yyyy HH':'mm':'ss.fff",
CultureInfo.CurrentCulture,
DateTimeStyles.None, DateTime out d )
{
timestamp = value;
}
}
你必须使用TryParseExact方法的参数来调整一下,看看你的场景中有什么用。