我想要在配置文件中放入一个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;
}
}
}发布于 2009-08-17 21:26:25
真的吗?Afaik,默认值是XML样式,这也是您想要的样式(yyyy-mm-dd)。
发布于 2009-08-17 21:31:02
我想你可以使用下面的代码:
[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");
}
}发布于 2015-06-13 21:16:14
我有类似的问题使用上述解决方案。对我来说,“this”时间的字符串“.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);
}https://stackoverflow.com/questions/1290507
复制相似问题