我想将DateTime放入配置文件中,但是,我希望以特定方式表达DateTime。我已经看到在ConfigurationElement中使用DateTime的示例(如下例所示)。我见过的例子都有以美国格式表示的日期。我想确保所有人都能理解日期,无论他们是谁,所以我想使用yyyy-MM-dd HH:mm:ss
作为格式。
使用从ConfigurationElement派生的类时,如何做到这一点?
class MyConfigElement : ConfigurationElement
{
[ConfigurationProperty("Time", IsRequired=true)]
public DateTime Time
{
get
{
return (DateTime)this["Time"];
}
set
{
this["Time"] = value;
}
}
}
答案 0 :(得分:4)
我想你可以使用以下内容:
[ConfigurationProperty("Time", IsRequired=true)]
public DateTime Time
{
get
{
return DateTime.ParseExact(
this["Time"].ToString(),
"yyyy-MM-dd HH:mm:ss",
CultureInfo.InvariantCulture);
}
set
{
this["Time"] = value.ToString("yyyy-MM-dd HH:mm:ss");
}
}
答案 1 :(得分:3)
答案 2 :(得分:0)
使用上述解决方案我有类似的问题。 对我来说,字符串“this [”Time“]。ToString()”就像“2015/6/12 15:31:24”,而方法DateTime.ParseExact的格式参数是“yyyy-MM-dd HH: MM:SS”。因此,此方法无法解析给定格式的字符串。 或者,你可以这样做
if(this["Time"] is string)
{
return DateTime.ParseExact(
this["Time"].ToString(),
"yyyy-MM-dd HH:mm:ss",
CultureInfo.InvariantCulture);
}
else
{
DateTime time = (DateTime)this["Time"];
return DateTime.ParseExact(
time.ToString("yyyy-MM-dd HH:mm:ss"),
"yyyy-MM-dd HH:mm:ss",
CultureInfo.InvariantCulture);
}