5

我想将 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;
            }
        }
    }
4

3 回答 3

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");
    }
}
于 2009-08-17T21:31:02.150 回答
3

你确定吗?Afaik,默认是 XML 样式,这也是你想要的 (yyyy-mm-dd)。

于 2009-08-17T21:26:25.357 回答
0

使用上述解决方案我有类似的问题。对我来说,"this["Time"].ToString()" 的字符串就像 "2015/6/12 15:31:24",而 DateTime.ParseExact 方法的格式参数是 "yyyy-MM-dd HH:毫米: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);
}
于 2015-06-13T13:16:13.673 回答