首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ConfigurationElement中的DateTime属性

ConfigurationElement中的DateTime属性
EN

Stack Overflow用户
提问于 2009-08-17 21:16:30
回答 3查看 3.7K关注 0票数 5

我想要在配置文件中放入一个DateTime,但是,我想要以一种特定的方式来表达DateTime。我见过在ConfigurationElement中使用DateTime的示例(如下例所示)。我见过的所有示例都有以美国格式表示的日期。我希望确保所有人都可以理解日期,无论他们是谁,所以我想使用yyyy-MM-dd HH:mm:ss作为格式。

在使用从ConfigurationElement派生的类时,如何做到这一点?

代码语言:javascript
复制
    class MyConfigElement : ConfigurationElement
    {
        [ConfigurationProperty("Time", IsRequired=true)]
        public DateTime Time
        {
            get
            {
                return (DateTime)this["Time"];
            }
            set
            {
                this["Time"] = value;
            }
        }
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-17 21:26:25

真的吗?Afaik,默认值是XML样式,这也是您想要的样式(yyyy-mm-dd)。

票数 3
EN

Stack Overflow用户

发布于 2009-08-17 21:31:02

我想你可以使用下面的代码:

代码语言:javascript
复制
[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");
    }
}
票数 4
EN

Stack Overflow用户

发布于 2015-06-13 21:16:14

我有类似的问题使用上述解决方案。对我来说,“this”时间的字符串“.ToString()”类似于"2015/6/12 15:31:24",而方法DateTime.ParseExact的格式参数是"yyyy-MM-dd HH:mm:ss“。所以这个方法不能解析给定格式的字符串。或者,您可以像下面这样做

代码语言:javascript
复制
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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1290507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档