2009-08-17 66 views
3

我想將DateTime放入配置文件,但是,我希望以特定方式表示DateTime。我見過在ConfigurationElement中使用DateTime的例子(如下面的例子)。我所見過的所有例子都有以美式格式表達的日期。我想確保日期是所有人都可以理解的,無論他們是誰,所以我想使用yyyy-MM-dd HH:mm:ss作爲格式。ConfigurationElement中的DateTime屬性

使用派生自ConfigurationElement的類時,我該怎麼做?

class MyConfigElement : ConfigurationElement 
    { 
     [ConfigurationProperty("Time", IsRequired=true)] 
     public DateTime Time 
     { 
      get 
      { 
       return (DateTime)this["Time"]; 
      } 
      set 
      { 
       this["Time"] = value; 
      } 
     } 
    } 

回答

3

確定嗎? Afaik,默認是XML風格,這也是你想要的(yyyy-mm-dd)。

+0

Doh!是的,它的工作原理沒有修改。這就是我想要閱讀的東西,而不是實際嘗試自己看。費曼博士將在他的墳墓中旋轉。 – 2009-08-17 22:36:08

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

對我來說,它在這個[「時間」]上引發格式異常 – Uriil 2015-04-23 08:06:51

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); 
}